PDA

Просмотр полной версии : HotKey and sendmessage


Chipito
21.10.2010, 23:55
Вообщем мне нужно,что б при нажатии гарячей клавиши,в мое окно(например оперы)посылалось нажатие клавиши.
Вот мой код,но он почему то не работает:)
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;{ Private declarations }
public
{ Public declarations }
end;

const
MyHotKey = ord('1');

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
var
handle:HWND;
begin
handle:=FindWindow('Form1',nil);
SendMessage(handle,WM_KEYDOWN,VK_SPACE,1);
SendMessage(handle,WM_KEYUP,VK_SPACE,1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle, MyHotKey, 0, MyHotKey);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Form1.Handle, MyHotKey);
end;

end.