我有一个AutoHotKey脚本,询问我是否要将Win键重新映射到Ctrl或取消重新映射,从而再次使它们成为Win键。
但是我找不到取消重映射的方法。如果我使用命令LWin::Lwin
,我会收到错误消息,指出存在“重复密钥”。
我是AutoHotKey的新手,但我先搜索过,所以请不要咬我的脑袋这是一个愚蠢的问题。 (这是一台配备Windows7-64的联想笔记本电脑。)
这是脚本:
MsgBox, 4, , Remap CTRL for Desktop Keyboard?
IfMsgBox, Yes
LWin::LCtrl
RWin::RCtrl
return
; Otherwise, the user picked No
; LWin::LWin
; RWin::RWin
; return
答案 0 :(得分:1)
各种方式。
创建一个关闭ahk的热键,例如^!x::ExitApp
= [Ctrl] + [Alt] + [x]
创建一个热键以禁用/启用所有热键,例如f12::suspend
创建仅适用于特定应用程序的热键。
以下是所有建议的组合。
在正常情况下:LWin::LCtrl
和RWin::RCtrl
处于活动状态,除非您按下F12。您可以在AHK_L中设置可以在#If (Var = 1)
中使用的变量,您可以在其中定义仅在该变量设置为1(true)时才起作用的热键。
SetTitleMatchMode, 2 ; Allow the use of a portion of the wintitle
F12::
Suspend
If A_IsSuspended
TrayTip, HotKeys, Off, 3, 0
Else
TrayTip, HotKeys, On, 3, 0
Return
^!x::ExitApp
LWin::LCtrl
RWin::RCtrl
F1::MsgBox, Normal Mode
#IfWinActive, Window title
F1::MsgBox, Window X is active
F2::MsgBox, You pressed F2 inside Window x
#IfWinActive
Toggle := False
F10::Toggle := !Toggle ; Turns Mouse button ON|Off
#if Toggle ; ONLY worls in AHK_L
LButton::Return ; Disables Mouse button
#if
答案 1 :(得分:-1)
这是您可以从命令行驱动的版本:
; Allow the script to be reloaded multiple times
#SingleInstance force
; Check the command line for input
NumberOfParameters = %0%
; If any command line param was passed then just unload the mappings
If ( NumberOfParameters > 0 )
{
MsgBox Command line parameter was passed, unloading...
ExitApp
}
Else
{
; Let's ask the user what they want to do
MsgBox, 4, , Remap CTRL for Desktop Keyboard?
IfMsgBox, Yes
{
; If yes, then remap
MsgBox Keys have been mapped.
}
Else
{
; If no, then unload
MsgBox Unloading mapping.
ExitApp
}
}
; Keys will be mapped so long as the script remains resident
LWin::LCtrl
RWin::RCtrl