Ir para conteúdo
Fórum Script Brasil
  • 0

Fechar Janelas Do Windows


Guest - Renato -

Pergunta

13 respostass a esta questão

Posts Recomendados

  • 0
Guest - Renato -

Cara eu vi os exemplos mas não tá dando pra fazer. Eu queria fechar todas as janelas abertas e eu acho que na API DestroyWindow é preciso especificar a janela.

Link para o comentário
Compartilhar em outros sites

  • 0

As janelas abertas em questão seria do seu software ou janelas de outros aplicativos?

Caso 'software': Um 'Unload' em cada janela não resolve?

Caso 'outros aplicativos': Na API 'DestroyWindow' você precisa passar (especificar) o 'Handle' (um código de indentificação que o MS Windows dá para toda janela criada por ele (Windows)) da janela do aplicativo externo. Como obter o Handle da janela do aplicativo externo? Aí você usa uma outra API, que se chama 'FindWindow'.

Um exemplo de como usar a 'DestroyWindow' e 'FindWindow':

Dim h As Long

h = FindWindow(vbNullString, "Calculadora") 'Pega o 'Handle' da calculadora do Windows. OBS: A calculadora tem que está aberta!
DestroyWindow h 'Destrói a janela do aplicativo Calculadora.

Qualquer dúvida estamos aí, falows!

Link para o comentário
Compartilhar em outros sites

  • 0
Cara eu vi os exemplos mas não tá dando pra fazer. Eu queria fechar todas as janelas abertas e eu acho que na API DestroyWindow é preciso especificar a janela.

Sim, e para isso é que existem outras funções (como EnumWindows e FindWindow) que permitem "encontrar" as janelas abertas.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Não dá dando certo. Tá aparecendo "Sub or Function not defined"

Adicione um módulo (Menu 'Project' -> opção 'Add Module') ao seu projeto e coloque no módulo:

Public Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Pronto! Agora você poderá usar as API's declaradas (DestroyWindow e FindWindow). O trecho de código que passei acima, no outro post (o quarto post) irá funcionar.

Falows! Qualquer coisa estmos aí!

Link para o comentário
Compartilhar em outros sites

  • 0

É verdade! A API 'DestroyWindow' não funcionou. Mas eu consegui fazer o que você quer, oculta a janela de aplicativo externo, porém o aplicativo continua em execução, ou seja, o aplicativo externo fica invisível.

Declare as API 's:

Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

'As duas API's no módulo de seu projeto.
Em um procedimento qualquer:
h = FindWindow(vbNullString, "Calculadora")
ShowWindow h, 0

Em ShowWindow, você usa no segundo parâmetro:

0 para ocultar a janela.

1 para exibir a janela.

Qualquer coisa, post! Falows!

Link para o comentário
Compartilhar em outros sites

  • 0
Deu certo mas e se eu quiser fechar o Internet Explorer?

Eu tentei colocar

[h = FindWindow(vbNullString, "Internet Explorer")]

mas não deu certo.

O Internet Explorer realmente não dá muito certo fechar não... se não me engano, trava tudo. De qualquer maneira, o problema no seu código é que o título da janela deve ser *exatamente* igual ao do programa (e uma janela do Internet Explorer nunca se chama apenas "Internet Explorer" [sempre tem o título do site junto]).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...