como usar esta simples rotina??????

Delphi

30/10/2003

como mandar uma string para um programa q estiver ativo tipo a frase : oi tudo bom ..para o bloco de notas q está ativo
tentei usar esssa dica mais naum consegui vejam
Código:
var
myHandle : THandle;
begin
myHandle:= FindWindow( ´MyAppClass´, ´MyAppCaption´);
if myHandle <> 0 then
PostMessage( myHandle, WM_KeyDown, myCharCode, 0 );
end;


Robotizar

Robotizar

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

30/10/2003

Fala Robotizar

var                                                
myHandle : THandle; 
begin 
myHandle:= FindWindow(nil, ´Sem título - Bloco de Notas´); 
if myHandle <> 0 then 
PostMessage( myHandle, WM_KeyDown, myCharCode, 0 ); 
end;


Detalhe: funciona apenas se o NotePad estiver aberto e não salvo, para que o título seja igual ao acima

aconcelho fazer isso antes de executar a função acima:

WinExec(´NotePad.exe´, 0);

flw


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

30/10/2003

Experimenta com WM_SETTEXT

só não sei aonde vai o parametro com o texto, deve ser em wparam, sei lá

Tenta: PostMessage(MyHandle, WM_SETTEXT, PChar(´Texto Qualquer´), 0);

não testei, pode ser que isso acima apenas mude o camption da janela


GOSTEI 0
Smash

Smash

30/10/2003

É, eu já fiz algumas coisinhas parecidas...
O Marcelo tá certo, isso só vai mudar o caption na barra de titulo do bloco de notas. Acontece q vc está mandando a mensagem para o objeto errado! Não é para o handle do notepad... o certo é para o handle do [b:a2d7096e3b]memo que está dentro[/b:a2d7096e3b] do notepad, entendeu?

Eu nao sei como vc vai fazer para buscar o handle do memo, mas em breve eu vou postar um tópico q pode esclarecer um problema meu e servir para o seu tb.

Ah, e qto ao WM_SETTEXT, ele funciona assim:

SendMessage([i:a2d7096e3b]handle[/i:a2d7096e3b], WM_SETTEXT, 0, integer([i:a2d7096e3b]ponteiro para pchar[/i:a2d7096e3b]));


GOSTEI 0
POSTAR