File tree Expand file tree Collapse file tree 1 file changed +66
-0
lines changed Expand file tree Collapse file tree 1 file changed +66
-0
lines changed Original file line number Diff line number Diff line change
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
+ };
You can’t perform that action at this time.
0 commit comments