我有一台 Redragon K580 键盘,带有一个选项,可以使用快捷键(FN + Win)锁定 Windows 键。问题是它不会永久锁定,每次重启后我都必须这样做,而且大多数时候我每次玩游戏前都会忘记这样做。我不想使用注册表黑客永久禁用它,因为我倾向于在不玩游戏时使用它。
那么,有没有办法使用某些 VBS SendKey 脚本或 AutoHotKey 在启动时自动禁用它?谢谢,
答案1
创建并运行.ahk 脚本:
#NoEnv
#SingleInstance force
If not A_IsAdmin ; For Win10 users
Run *RunAs "%A_ScriptFullPath%"
Menu Tray, Icon, shell32.dll, 110
Menu Tray, NoStandard
Menu Tray, Add, Block [Win], +LWin
Menu Tray, Add, AutoStart, AutoStartSwitch
Menu Tray, Add, Exit, Exit
winBlock := True ; Blocked at start
If winBlock
Menu Tray, Check, Block [Win]
SplitPath, A_ScriptName, , , , OutNameNoExt
LinkFile := A_StartupCommon "\" OutNameNoExt ".lnk"
If FileExist(LinkFile)
Menu Tray, Check, AutoStart
Return
+LWin:: ; Shift + LWin — toggle block
winBlock := Not winBlock
Menu Tray, Togglecheck, Block [Win]
Return
#If winBlock
LWin::Return ; Block
#If
AutoStartSwitch:
If FileExist(LinkFile)
FileDelete % LinkFile
Else
FileCreateShortcut % A_ScriptFullPath, % LinkFile, % A_ScriptDir
Menu Tray, ToggleCheck, AutoStart
Return
Exit:
ExitApp
用于Shift + LWin
阻止/解除阻止LWin
按钮。
答案2
这是一个可能的解决方案 -
- 安装自动热键
- 使用以下代码创建“禁用 LWin.ahk” -
#Requires AutoHotkey v1.1.37
#NoEnv
#SingleInstance force
SendMode Input
SetWorkingDir %A_ScriptDir%
LWinIndex := 1
LWin::
If LWinIndex = 1 { ; left win button is disabled
ToolTip LWin Disabled
SetTimer, RemoveToolTip, -1000
Return
}
Else Send {LWin} ; left win button is enabled
Return
!Esc:: ; Alt + Esc
If LWinIndex = 1 {
LWinIndex := 0
ToolTip LWin Enabled
SetTimer, RemoveToolTip, -1000
}
Rlse {
LWinIndex := 1
ToolTip LWin Disabled
SetTimer, RemoveToolTip, -1000
}
Return
RemoveToolTip:
ToolTip
Return
Disable LWin.ahk
在启动文件夹中放置或快捷方式此 ahk%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
这应该在启动时运行 AHK 并LWin在您登录时禁用。- 完毕!
按Alt+Esc应启用或禁用LWin。
我在这里使用是!Esc
因为 AHK 无法识别Fn大多数键盘上的按钮。