Pegar handle pelo o nome do exe de uma aplicação externa ?
21/03/2006
0
Dangardenal
Posts
21/03/2006
Martins
Tente fazer isso com o código abaixo:
procedure TForm1.Button4Click(Sender: TObject); var nHandle : THandle; begin nHandle := FindWindow( 0, ´Calculadora´ ); ShowMessage( IntToStr( nHandle ) ); end;
boa sorte!
21/03/2006
Martins
procedure TForm1.Button4Click(Sender: TObject); var nHandle : THandle; begin nHandle := FindWindow( nil, ´Calculadora´ ); ShowMessage( IntToStr( nHandle ) ); end;
21/03/2006
Adriano Santos
Pode crer Martins, mas como tem a prévia me acostumei...rsrs.
Em relação ao Handle do aplicativo, é isso mesmo cara, mas lembrando que só vai funcionar se o executável estiver ativo, ou seja, no caso da calculadora somente se ela estiver aberta.
A sua dúvida ficou um pouco sem explicação, diga exatamente o que necessita.
22/03/2006
Martins
Em relação ao Handle do aplicativo, é isso mesmo cara, mas lembrando que só vai funcionar se o executável estiver ativo, ou seja, no caso da calculadora somente se ela estiver aberta.
A sua dúvida ficou um pouco sem explicação, diga exatamente o que necessita.[/quote:45a2732a87]
Isso mesmo [b:45a2732a87]Adriano[/b:45a2732a87] no caso a dica q eu postei só serve para pegar pelo título da Janela.
Nesse caso como o seu programa não tem uma Janela, muito menos um título, ele poderia ser localizado por sua [color=blue:45a2732a87][b:45a2732a87]Classe[/b:45a2732a87][/color:45a2732a87].
var nHandle : THandle; begin nHandle := FindWindow( Classe_do_Aplicativo, nil ); ShowMessage( IntToStr( nHandle ) ); end;
Boa sorte.
22/03/2006
Adriano Santos
var nHandle : THandle; begin nHandle := FindWindow( Classe_do_Aplicativo, nil ); ShowMessage( IntToStr( nHandle ) ); end;
Pode crer, o ruim é saber a bendita classe...:D
22/03/2006
Martins
1 ListBox;
2 Button - 1 para pegar o handle do aplicativo e o outro para fechar o mesmo;
22/03/2006
Siam
Se o aplicativo não tem Forms, FindWindow irá buscar por qual classe ?
22/03/2006
Adriano Santos
[b:343a4381b8]siam[/b:343a4381b8] todo aplicativo tem uma classe, até onde sei, não necessariamente a classe não está ligada ao ter ou não uma janela. Experimente abrir o aplicativo WinSigth em Iniciar >> Programas >> Borland Delphi XX >> WinSigth32 este aplicativo lista pra você todas as janelas ativas, vai ver que várias não estaão presentes, ou seja, visiveis mas contem uma classe.
22/03/2006
Siam
Todo aplicativo possui um processo aberto pelo Windows que é sua Thread principal mas não necessariamente possui uma classe.
Executáveis que rodam sem janelas, nem devem ter Handles.
Clique aqui para fazer login e interagir na Comunidade :)