eye0eye 发表于 2009-5-23 13:43:19

【分享】低级键盘来屏蔽win键

<p><font face="Verdana">function LowLevelKeyboardProc(nCode:integer;WParam:WPARAM;LParam:LPARAM):LRESULT;stdcall;<br/>type<br/>KBDLLHOOKSTRUCT=record<br/>&nbsp;&nbsp; vkCode:DWORD;<br/>&nbsp;&nbsp; scanCode:DWORD;<br/>&nbsp;&nbsp; flags:DWORD;<br/>&nbsp;&nbsp; time:DWord;<br/>&nbsp;&nbsp; dwExtraInfo:dword;<br/>end;<br/>var<br/>&nbsp; fFlag:BOOL;<br/>&nbsp; p:^KBDLLHOOKSTRUCT;<br/>begin<br/>&nbsp; result:=0;<br/>&nbsp; fFlag := false;<br/>&nbsp; p:=Pointer(LPARAM);<br/>&nbsp; if (ncode=HC_ACTION) then<br/>&nbsp; begin<br/>&nbsp; case wparam of<br/>&nbsp;&nbsp; WM_KEYDOWN,<br/>&nbsp;&nbsp; WM_SYSKEYDOWN,<br/>&nbsp;&nbsp; WM_KEYUP,<br/>&nbsp;&nbsp; WM_SYSKEYUP:<br/>&nbsp;&nbsp; fFlag :=(p.vkCode = VK_Lwin) or (p.vkCode = VK_Rwin)or (p.vkCode = VK_apps);<br/>&nbsp;&nbsp; end;<br/>&nbsp;&nbsp; end;<br/>&nbsp;&nbsp; if fFlag = true then<br/>&nbsp;&nbsp; begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostMessage(hHandle,WM_SOCK,0,0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Result:=1;<br/>&nbsp;&nbsp; end;<br/>&nbsp;&nbsp; if ncode &lt;&gt; 0 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Result := CallNextHookEX(0,ncode,wparam,lparam);<br/>end;</font></p>
<p><font face="Verdana"><font face="Verdana"></font></font>&nbsp;</p>
<p><font face="Verdana"><font face="Verdana"><font face="Verdana">procedure TForm1.Button1Click(Sender: TObject);</font></font></font></p>
<p><font face="Verdana"><font face="Verdana">const<br/>&nbsp;&nbsp; WH_KEYBOARD_LL=13;</font></font></p>
<p>var </p>
<p>&nbsp;&nbsp; wm_sock:integer;</p>
<p>&nbsp;&nbsp; hHandle:HWND;</p>
<p><font face="Verdana"><font face="Verdana">begin<br/>&nbsp;&nbsp;&nbsp; wm_sock := 0;<br/>&nbsp;&nbsp;&nbsp; wm_sock := RegisterWindowMessage('wm_sock');<br/>&nbsp;&nbsp;&nbsp; //showmessage(inttostr(wm_sock));<br/>&nbsp;&nbsp;&nbsp; hHandle := Self.Handle;<br/>&nbsp;&nbsp;&nbsp; setwindowshookexw(WH_KEYBOARD_LL,LowLevelKeyboardProc,hinstance,0);</font></p>
<p>end;<br/></p></font>
[此贴子已经被作者于2009-5-23 13:45:24编辑过]
页: [1]
查看完整版本: 【分享】低级键盘来屏蔽win键