如何将Windows键映射为应用启动器快捷键并保留组合快捷键
解决方案
AutoHotkey v2.0 修复方案
你的原代码问题在于拦截了LWin的按下事件,导致系统无法识别Win组合快捷键。通过添加~前缀让按键事件正常传递给系统,同时在释放时判断是否为单独按下即可解决:
#Requires AutoHotkey v2.0 ~LWin Up:: { ; 验证仅单独按下LWin,无其他修饰键同时按住 if (A_PriorKey = "LWin" && !GetKeyState("Ctrl", "P") && !GetKeyState("Shift", "P") && !GetKeyState("Alt", "P")) { Send "!{Space}" } }
~前缀:保留LWin的按下事件,让系统正常识别Win+1、Win+D等组合快捷键- 条件判断:仅当单独按下并释放LWin时,才发送
Alt+Space启动应用启动器
PowerToys 解决方案
利用PowerToys Keyboard Manager的「仅单独按下触发」功能,无需编写代码即可实现需求:
- 打开PowerToys,切换到Keyboard Manager模块
- 点击「重新映射键」,再点击「+」添加新规则
- 左侧选择「Left Windows」,右侧选择「自定义快捷键」
- 在弹出框中按下
Alt+Space确认目标快捷键 - 勾选下方的「仅当单独按下键时触发」选项
- 保存设置后,单独按LWin会启动应用启动器,Win组合快捷键不受影响
内容的提问来源于stack exchange,提问作者Aaras




