

10多年前有段时间喜欢玩LOL,但是左手经常生的不小心按到左边Win键造成游戏切出来,严重影响游戏体验。
那时候还没有AI,找起代码方法什么的远没有现在这么方便。很是努力的百度了好多回,才把这个键盘屏蔽指定键的程序给整了出来。
特别说明:今天发享的这个软件运行后没有界面,在右下角会有一个图标,鼠标放上去会有相关提示!废话不多说,直接上AU3代码:
#Region ;**** 参数创建于 ACNWrapper_GUI ****#PRE_icon=..\..\..\..\Windows\System32\SHELL32.dll|-260#PRE_Outfile_x64=屏蔽Win键.exe#PRE_Res_Comment=屏蔽键盘左右两边的win键#PRE_Res_Description=屏蔽键盘左右两边的win键#PRE_Res_Fileversion=2013.4.23#PRE_Res_LegalCopyright=By 小莫#PRE_Res_requestedExecutionLevel=None#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****#include <WinAPI.au3>#include <WindowsConstants.au3>#include <StructureConstants.au3>;#NoTrayIconOpt("TrayMenuMode", 1) ;0 = 默认菜单项, 1 = 没有默认菜单$g_szVersion = "Kill-Win-Key -By Dxm"If WinExists($g_szVersion) Then ExitAutoItWinSetTitle($g_szVersion)HotKeySet ("^!{F12}","OnAutoItExit") ;退出程序快捷键 CTRL + ALT + F12;OnAutoItExitRegister("OnAutoItExit") ;退出时调用这个函数MsgBox(64,"提示..","本程序功能:屏蔽Win键 " & @CRLF & "恢复请按快捷键: CTRL + ALT + F12 ")TraySetToolTip("退出快捷键: CTRL + ALT + F12 ")Global $_handle, $_hook, $_endkey = "";创建一个回调函数$_handle = DllCallbackRegister("_keyproc", "long", "int;wparam;lparam");返回回调函数句柄$_hmod = _WinAPI_GetModuleHandle(0);安装钩子;_WinAPI_SetWindowsHookEx(钩子类型,指针,回调函数句柄)$_hook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_ll, DllCallbackGetPtr($_handle), $_hmod)While 1Sleep(10)WEndFunc _keyproc($nCode, $wParam, $lParam)Local $tKEYHOOKSIf $nCode < 0 ThenReturn _WinAPI_CallNextHookEx($_hook, $nCode, $wParam, $lParam) ;键盘消息传递到下一个钩子EndIf$tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)Switch $wParamCase $WM_KEYDOWN$_endkey = DllStructGetData($tKEYHOOKS, "vkCode")Switch $_endkeyCase 91 ;左win键Return 1 ;1为禁用,0为开启Case 92 ;右win键Return 1EndSwitchEndSwitchEndFunc ;==>_keyprocFunc OnAutoItExit() ;退出时卸载钩子_WinAPI_UnhookWindowsHookEx($_hook)DllCallbackFree($_handle)ExitEndFunc ;==>OnAutoItExit
键盘码参考以下图片,需要屏蔽哪个就填写哪个吧

往期Au3相关文章:

夜雨聆风