Guest - Renato - Postado Janeiro 15, 2006 Denunciar Share Postado Janeiro 15, 2006 Tem como fechar todas as janelas ou jogos que estiverem abertos pelo VB? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 15, 2006 Denunciar Share Postado Janeiro 15, 2006 Tem como fechar todas as janelas ou jogos que estiverem abertos pelo VB? Dê uma olhada na função DestroyWindow da API Win32. No API-Guide você encontra exemplos: http://www.allapi.net/ ou http://www.mentalis.org/Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Renato - Postado Janeiro 16, 2006 Denunciar Share Postado Janeiro 16, 2006 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Bittencourt Muniz Postado Janeiro 16, 2006 Denunciar Share Postado Janeiro 16, 2006 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Renato - Postado Janeiro 16, 2006 Denunciar Share Postado Janeiro 16, 2006 Não dá dando certo. Tá aparecendo "Sub or Function not defined" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 17, 2006 Denunciar Share Postado Janeiro 17, 2006 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Renato - Postado Janeiro 17, 2006 Denunciar Share Postado Janeiro 17, 2006 Amigo Graymalkin tinha como você me dizer como ficaria o código completo para fechar todas as janelas q uma pessoa abrir? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Bittencourt Muniz Postado Janeiro 17, 2006 Denunciar Share Postado Janeiro 17, 2006 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 LongPronto! 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í! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Renato - Postado Janeiro 17, 2006 Denunciar Share Postado Janeiro 17, 2006 Eu fiz exatamente como você disse mas a Calculadora continuou aberta. O q pode ter acontecido? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Bittencourt Muniz Postado Janeiro 17, 2006 Denunciar Share Postado Janeiro 17, 2006 É 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, 0Em ShowWindow, você usa no segundo parâmetro:0 para ocultar a janela.1 para exibir a janela.Qualquer coisa, post! Falows! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Renato - Postado Janeiro 17, 2006 Denunciar Share Postado Janeiro 17, 2006 Deu certo mas e se eu quiser fechar o Internet Explorer?Eu tentei colocar[h = FindWindow(vbNullString, "Internet Explorer")]mas não deu certo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 17, 2006 Denunciar Share Postado Janeiro 17, 2006 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Claudio -- Postado Janeiro 27, 2008 Denunciar Share Postado Janeiro 27, 2008 Aproveitando o assunto, sabe me dizer qual API usar para captar o titulo da janela ativa ? Grato. claudiobf@gmail.com Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 27, 2008 Denunciar Share Postado Janeiro 27, 2008 GetForegroundWindow() para pegar a janela ativa e GetWindowText() para pegar o texto de uma janela.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Renato -
Tem como fechar todas as janelas ou jogos que estiverem abertos pelo VB?
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados
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.