PDA

Ver la Versión Completa : Enviar teclas


b2k
24-06-2007, 01:27:39
Hola a todos, estoy desarrollando una aplicacion, que envia una cantidad de teclas a la otra

SendKeys(Pchar(Ventana + #13));

primero yo detecto la ventana a la que le voy a enviar el mensaje, pero lo que quiero es, crear una funcion donde se ejecute ese parametros una cantidad de veces que yo quiero y con un sleep intermedio por cada una.

Gracias por su atencion

ArdiIIa
24-06-2007, 01:53:57
Veamos si esto te sirve:





//Ejemplo de llamada
For I := 0 To Memo1.Lines.Count -1 DO
Begin
cTemp := Memo1.Lines[I];
If cTemp = ''Then Break;
SendText(cTemp);
End;



Procedure TFormMain.SendText( Text : String);
Var J : Integer;
Begin
For J := 0 to Length(Text) DO
PostMessage(HandleVentana ,WM_CHAR,Ord( Text[J]),0);
PostMessage(HandleVentana ,WM_KEYDOWN,VK_RETURN,0);
End;


El sleep lo puede meter donde quieras....

cHackAll
24-06-2007, 02:48:27
Creo que lo que buscas es el siguiente código:

procedure SendKeys(Keys: PChar; const milliseconds: Cardinal);
var vk: Cardinal;
begin
while Keys[0] <> #0 do
begin
vk := VkKeyScan(Keys[0]);
Inc(Cardinal(Keys));
keybd_event(vk, 0, 0, 0);
keybd_event(vk, 0, KEYEVENTF_KEYUP, 0);
Sleep(milliseconds);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetForegroundWindow(FindWindow('notepad', nil));
SendKeys('hola'+#13, 100);
end;

Espero os sea de utilidad; Saludos!

b2k
24-06-2007, 06:26:22
Gracias por la ayuda de ambos, se me ajusto mas la ayuda de cHackAll, gracias a ti tambien ardilla por ayudarme.

Saludos :)

b2k
24-06-2007, 07:42:13
Hola, una ultima, cosa, como podria verificar si la ventana primero existe?

Saludos

MaMu
24-06-2007, 08:23:04
Hola, una ultima, cosa, como podria verificar si la ventana primero existe?

Saludos

Y yo haria algo como esto, asi:


procedure TMain.BotonExisteVentana1Click(Sender: TObject);
var
pos:integer;
ventana:string;
begin
ventana:='caption_de_la_ventana';
pos:=FindWindow(nil,pChar(ventana));
If pos=0
then ShowMessage('No no! esa ventana no está!!!')
else ShowMessage('Si, la ventana está');
end;



Saludos