| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
brunosamuell Novato

Registrado: Terça-Feira, 13 de Novembro de 2007 Mensagens: 3
|
Enviada: Ter Nov 13, 2007 11:13 am Assunto: Fechar programa externo simulando Enter. (Editado) |
|
|
| Moderadores Active-Delphi escreveu: |
Tópico editado por Sufolk.
Motivo: Violação da regra 2Regras do Fórum.
Titulo Original: FECHA PORGRAM EXTERNO SIMULANDO "ENTER"
|
Bom Dia Galera!!
Estou Querendo Fecha Um Programa Q Fica Mostrando Uma Tela Com Os Botões (Repetir E Cancelar) Fiz Esse Comando Postmessage(Findwindow(Nil, Pchar(T)), Wm_Close , 0, 0) Mais Ele Faz E Finalizar O Programa! Tem Uma Forma Dele Executar A Simulação Do Enter Ou Executar O Click No Repetir?
BRUNO SAMUEL |
|
| Voltar ao Topo |
|
 |
solitary_knight Aprendiz


Registrado: Quinta-Feira, 26 de Janeiro de 2006 Mensagens: 277
|
Enviada: Qua Nov 14, 2007 11:32 am Assunto: |
|
|
Amigo tente as funções EnumChildWindows e Na função de callback a função GetWindowText.
Depois de achar o handle do botão usa um sendmessage com BM_CLICK par a simular o click do botão
Para achar a janela que tem o Botão use FindWindow
Qualquer dúvida de como usar as funções posta ai |
|
| Voltar ao Topo |
|
 |
brunosamuell Novato

Registrado: Terça-Feira, 13 de Novembro de 2007 Mensagens: 3
|
Enviada: Qua Nov 14, 2007 12:08 pm Assunto: tem um exemplo |
|
|
vc teria um como me mostrar um exemplo para testar?
agradeço muito a ajuda!! |
|
| Voltar ao Topo |
|
 |
solitary_knight Aprendiz


Registrado: Quinta-Feira, 26 de Janeiro de 2006 Mensagens: 277
|
Enviada: Qua Nov 14, 2007 12:39 pm Assunto: |
|
|
Cria dois projetos, o primeiro é onde vc vai trabalhar e o outro é como se fosse o que quer interagir.
No meu caso a classe do form do exe que quero interagir é TForm2.
essas são as duas funções que eu criei para procurar o botão.
Nese form tem um TBotton e um ListBox.
Se tiver dúvida em alguma coisa, me manda o programa via e-mail que eu do uma olhada. Avisa que mandou.
o_theface@yahoo.com
procedure TmainForm.Button1Click(Sender: TObject);
var wnd: THandle;
begin
ListBox1.Clear;
wnd:= FindWindow(PChar('TForm2'), nil);
if (wnd <= 0) then
begin
ShowMessage('Janela não encontrada');
Exit;
end;
EnumChildWindows(wnd, @EnumChildProc, 0);
end;
function EnumChildProc(hwnd: HWND; lParam: LPARAM): BOOL;
var buf, buf2: array[0..255] of Char;
begin
GetClassName(hwnd, buf, sizeof(buf) - 1);
GetWindowText(hwnd, buf2, sizeof(buf2) - 1);
mainForm.ListBox1.items.Add(buf + ' - ' + buf2);
Result:= True;
end; |
|
| Voltar ao Topo |
|
 |
|