Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Enviar pulsación de tecla a un proceso (https://www.clubdelphi.com/foros/showthread.php?t=88662)

deliriun 13-07-2015 05:12:16

Enviar pulsación de tecla a un proceso
 
Hola qué tal espero esten teniendo un buen día...

Me gustaría que me orienten en lo siguiente:

Quisiera saber si se puede enviar la pulsación de una tecla a un proceso en especifico...

Por ejemplo al proceso Notepad.exe que se le envie la pulsación de la tecla A... Todos sabemos que se vería la A
pero me gustaría hacer eso de esa manera se podría escribir así este en segundo plano...

Me pregunto si eso sería posible tambien se podría con los clicks del raton? Hacerlos en el proceso así
este en segundo plano...

Espero me haya dejado entender Gracias

nlsgarcia 13-07-2015 06:59:14

deliriun,

Cita:

Empezado por deliriun
...Quisiera saber si se puede enviar la pulsación de una tecla a un proceso en especifico...

:rolleyes:

Revisa esta información:
Espero sea útil :)

Nelson.

ecfisa 13-07-2015 07:00:25

Hola deliriun.

El tema se ha tratado anteriormente,
Un ejemplo mas concreto:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    FAppTitle: string;
    procedure SendKeyToApp(const Key: Word; KeyUp: DWORD = 0);
  public
    property AppTitle: string read FAppTitle write FAppTitle;
  end;
var
  Form1: TForm1;

implementation

procedure TForm1.SendKeyToApp(const Key: Word; KeyUp: DWORD = 0);
var
  H : HWND;
  TI: TInput;
begin
  H := FindWindow(nil, PChar(FAppTitle));
  if H <> 0 then
  begin
    SetForegroundWindow(H);
    EnableWindow(H, False);
    ZeroMemory(@TI, SizeOf(TI));
    TI.Itype      := INPUT_KEYBOARD;
    TI.ki.wVk     := Key;
    TI.ki.dwFlags := KeyUp;
    SendInput(1, TI, SizeOf(TI));
    EnableWindow(H, True);
    SetForegroundWindow(Handle);
  end;
end;


// Enviar el caracter "A" al Bloc de notas
procedure TForm1.Button1Click(Sender: TObject);
begin
  AppTitle := 'Sin título: Bloc de notas';
  SendKeyToApp(VK_SHIFT);
  SendKeyToApp(Ord('A'));
  SendKeyToApp(Ord('A'), KEYEVENTF_KEYUP);
  SendKeyToApp(VK_SHIFT, KEYEVENTF_KEYUP);
end;

Saludos :)


La franja horaria es GMT +2. Ahora son las 11:39:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi