键盘钩子(50分)

  • 主题发起人 主题发起人 westdog
  • 开始时间 开始时间
W

westdog

Unregistered / Unconfirmed
GUEST, unregistred user!
我要实现在windows里按某个热键就弹出我的程序,好像是用wh_keyboard,但是我尝试了<br>几次都不行(nt下),每次都是在当前程序里面可以捕获,到了其他程序按键就会弄死那个<br>程序,请问何故?有源码最好
 
http://vcl.vclxx.com/DELPHI/D32SAMPL/HOOKDEMO.ZIP
 
注册个热键可以实现你想要的功能,免去用Hook的麻烦了。但得运行你的注册热键的程序才行,<br>下面的是按F4键就运行记事本。<br>&nbsp; private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; &nbsp; myHotKey: Integer;<br>&nbsp; &nbsp; procedure wmHotKey(var Msg: Tmessage); message WM_HOTKEY;<br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>&nbsp; myHotKey := GlobalAddAtom('MyHotKey') - $C000;<br>&nbsp; RegisterHotKey(Handle, myHotkey, 0, VK_F4);<br>end;<br>procedure TForm1.wmHotKey(var Msg: Tmessage);<br>begin<br>&nbsp; if (Msg.LParamHi = VK_F4) then<br>&nbsp; begin<br>&nbsp; &nbsp; WinExec('notepad.exe', SW_Normal);<br>&nbsp; end;<br>end;<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br>&nbsp; UnRegisterHotKey(handle, myHotKey);<br>end;<br>
 
注册个热键就行啦。
 
多人接受答案了。
 
后退
顶部