postmessage就可以了阿,这个是模拟向foobar2000按键(foobar2000在后台运行)
procedure TForm1.ONHotkey(var message:Tmessage);
begin
wnd:=findwindow('{DA7CD0DE-1602-45e6-89A1-C2CA151E008E}',nil);
if (message.WParam=WM_SNAPHOTKEY) then
postmessage(wnd,WM_keydown,ord('X'),0);
if (message.WParam=WM_SNAPHOTKEY1) then
postmessage(wnd,WM_keydown,109,0);
if (message.WParam=WM_SNAPHOTKEY2) then
postmessage(wnd,WM_keydown,107,0);
if (message.WParam=WM_SNAPHOTKEY3) then
postmessage(wnd,WM_keydown,ord('V'),0); //home
if (message.WParam=WM_SNAPHOTKEY4) then
postmessage(wnd,WM_keydown,ord('B'),0);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
RegisterHotKey(Handle,WM_SNAPHOTKEY1,0,36 );
RegisterHotKey(Handle,WM_SNAPHOTKEY2,0,35 );
RegisterHotKey(Handle,WM_SNAPHOTKEY,0,VK_f10 );
RegisterHotKey(Handle,WM_SNAPHOTKEY3,0,VK_f7 );
RegisterHotKey(Handle,WM_SNAPHOTKEY4,0,VK_f8 );
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle,WM_SNAPHOTKEY);
UnregisterHotKey(Handle,WM_SNAPHOTKEY1);
UnregisterHotKey(Handle,WM_SNAPHOTKEY2);
UnregisterHotKey(Handle,WM_SNAPHOTKEY3);
UnregisterHotKey(Handle,WM_SNAPHOTKEY4);
end;