由于用底层钩子360会报警,用系统注册热键也不行。有谁有好的办法屏蔽WIN组合键,比如WIN+D
解决方案 »
- 為什麼我在console application中建立的TcpSever與TcpClient連接後馬上斷掉?
- BDE数据库怎么打包给别人!!
- 请问com+是什么东西?
- 我想请问怎么样才能把edit.text里面的数据一个一个读出来呢?
- 请问函数传递,设置默认值问题!
- ★★★什么是"刷屏"?有什么用?
- 提供方案马上给分
- 我在用toolbar空件上右击选new button然后我想调这个new button的大小怎么调啊谢谢我急等
- 一条同时执行删除和建立视图的语句出错,问题在GO这条语句,分别在GO前加入#13#10还是没法解决
- 差一个report.dcu文件就办
- 一个Delphi的源码加密插件+散分
- Delphi中的TClientdataset有没有数据回滚功能
写注册表可以实现。
Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,
Dialogs, StdCtrls; type
tagKBDLLHOOKSTRUCT = packed record
vkCode: DWORD;
scanCode: DWORD;
flags: DWORD;
time: DWORD;
dwExtraInfo: DWORD;
end;
KBDLLHOOKSTRUCT= tagKBDLLHOOKSTRUCT;
PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
const WH_KEYBOARD_LL = 13;
const LLKHF_ALTDOWN = $20;
function LowLevelKeyboardProc(nCode:Integer;
WParam: WPARAM;LParam:LPARAM):LRESULT;stdcall;
procedure hookstar;
procedure hookend;
var
hhkLowLevelKybd:HHOOK; implementation function LowLevelKeyboardProc(nCode: Integer;WParam: WPARAM;LParam: LPARAM):LRESULT; stdcall;
var
fEatKeystroke: BOOL;
p: PKBDLLHOOKSTRUCT;
begin
Result:=0;
fEatKeystroke:=FALSE;
p:=PKBDLLHOOKSTRUCT(lParam);
if (nCode=HC_ACTION) then
begin
case wParam of
WM_KEYDOWN,
WM_SYSKEYDOWN,
WM_KEYUP,
WM_SYSKEYUP:
fEatKeystroke:=
((p.vkCode=VK_TAB) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
((p.vkCode=VK_ESCAPE) and ((p.flags and LLKHF_ALTDOWN) <> 0))or
(p.vkCode=VK_Lwin) or
(p.vkCode=VK_Rwin) or
(p.vkCode=VK_apps) or
((p.vkCode=VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0)) or
((p.vkCode=VK_F4) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
((p.vkCode=VK_SPACE) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
(((p.vkCode=VK_CONTROL) and (P.vkCode = LLKHF_ALTDOWN and p.flags) and (P.vkCode=VK_Delete)))
end;
end;
if fEatKeystroke=True then
Result:=1;
if nCode <> 0 then
Result := CallNextHookEx(0,nCode,wParam,lParam);
end; procedure HookStar;
begin
if hhkLowLevelKybd=0 then
hhkLowLevelKybd:=SetWindowsHookExW(WH_KEYBOARD_LL,LowLevelKeyboardProc, Hinstance,0);
end; procedure HookEnd;
begin
if (hhkLowLevelKybd<>0) and UnhookWindowsHookEx(hhkLowLevelKybd) then
hhkLowLevelKybd:=0;
end; end.