Skip to content

Commit 0739601

Browse files
authored
屏蔽按键
1 parent 456bdd5 commit 0739601

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

17-屏蔽按键/屏蔽win键.cpp

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#define _WIN32_WINNT 0x0400 //Windows NT 4.0
2+
#include <windows.h>
3+
#include <iostream>
4+
using namespace std;
5+
6+
MSG msg;
7+
HHOOK mhook=NULL;
8+
9+
LRESULT WINAPI KeyProc(int code,WPARAM wParam,LPARAM lParam)
10+
{
11+
LPKBDLLHOOKSTRUCT p=(LPKBDLLHOOKSTRUCT)lParam;
12+
if(code<0)
13+
CallNextHookEx(0,code,wParam,lParam);
14+
if(code==HC_ACTION)
15+
{
16+
switch(wParam)
17+
{
18+
case WM_KEYDOWN:
19+
if(p->vkCode==VK_LWIN||p->vkCode==VK_RWIN)
20+
{
21+
return 1;
22+
break;
23+
}
24+
case WM_KEYUP:
25+
if(p->vkCode==VK_LWIN||p->vkCode==VK_RWIN)
26+
{
27+
return 1;
28+
break;
29+
}
30+
case WM_SYSKEYDOWN:
31+
if(p->vkCode==VK_LWIN||p->vkCode==VK_RWIN)
32+
{
33+
return 1;
34+
break;
35+
}
36+
case WM_SYSKEYUP:
37+
if(p->vkCode==VK_LWIN||p->vkCode==VK_RWIN)
38+
{
39+
return 1;
40+
break;
41+
}
42+
}
43+
}
44+
CallNextHookEx(0,code,wParam,lParam);
45+
return 0;
46+
}
47+
48+
void messageloop() { //消息循环,不断处理消息,mfc可不用
49+
while (GetMessage (&msg, NULL, 0, 0)) {
50+
TranslateMessage (&msg);
51+
DispatchMessage (&msg);
52+
};
53+
}
54+
55+
void sethook() { //建立钩子
56+
mhook=::SetWindowsHookEx(WH_KEYBOARD_LL,KeyProc,GetModuleHandle(NULL),0);
57+
if(mhook)
58+
cout << "已经屏蔽win键" << endl;
59+
}
60+
61+
62+
int main() {
63+
sethook();
64+
messageloop();
65+
return 0;
66+
};

0 commit comments

Comments
 (0)