一个关于键盘消息的问题(分不够再加) (在线等待) ( 积分: 200 )

  • 主题发起人 主题发起人 月明风轻
  • 开始时间 开始时间

月明风轻

Unregistered / Unconfirmed
GUEST, unregistred user!
写了个小程序,主要是想将键值为183的按键替换为退格键.<br>183键是调用计算器程序的.<br>用的是键盘勾子,但发现虽然能够执行退格动作,但计算器程序还是能调出来?<br>代码如下:<br><br>function&nbsp;KeyboardHookProc(code:&nbsp;Integer;&nbsp;wparam:&nbsp;WPARAM;<br>&nbsp;&nbsp;lparam:&nbsp;LPARAM):&nbsp;LRESULT;&nbsp;stdcall;<br>const<br>&nbsp;&nbsp;_KeyProcessMask&nbsp;=&nbsp;$80000000;<br>var<br>&nbsp;&nbsp;Msg:&nbsp;TMsg;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;if&nbsp;code&nbsp;&lt;&nbsp;0&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;Windows.CallNextHookEx(hNextHookProc,&nbsp;code,&nbsp;wparam,&nbsp;lparam);<br>&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;end;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//StrToInt(unit1.Form1.edt2.Text)<br>&nbsp;&nbsp;if&nbsp;((lparam&nbsp;and&nbsp;_KeyProcessMask)&nbsp;=&nbsp;0)&nbsp;and&nbsp;(wparam&nbsp;=&nbsp;183)&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;GetMessage(Msg,&nbsp;0,&nbsp;0,&nbsp;0);<br>&nbsp;&nbsp;&nbsp;&nbsp;PostMessage(Msg.hwnd,&nbsp;WM_KEYDOWN,&nbsp;8,&nbsp;0);<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;1;<br>&nbsp;&nbsp;end;<br>end;
 
没人在吗?急呀`~`<br><br>江湖救急呀~`<br>是不是键盘底层用了SendMessage的关系?
 
后退
顶部