AutoHotKey 脚本更改输入语言,如何避免这种情况?
AutoHotKey script changes input language, how to avoid this?
; switch between virtual desktops (win10)
; supposed to be launched in initial desktop
flag := 0
LAlt & D::
if(flag = 0){
send, {Control Down} {LWin Down} {Right} {Control Up} {LWin Up}
flag := 1
Return
}
else{
send, {Control Down} {LWin Down} {Left} {Control Up} {LWin Up}
flag := 0
Return
}
应用后,有机会显示语言栏甚至更改输入语言。请问有什么建议吗?
虽然我不能确定它打开语言栏的原因,但本文介绍了如何禁用语言栏的内置热键:
https://winaero.com/blog/change-hotkeys-switch-keyboard-layout-windows-10/
您的代码也可能存在一些小问题。看起来你的牙套之间有空隙;发送命令将发送这些空格。当然,我不认为这会导致您遇到的问题。
这是您的代码的精简版,可能表现得更好:
<!d::
flag := !flag
If flag
Send , ^#{right}
Else
Send , ^#{left}
Return
这是一个使用三元运算符的更简洁的版本:
<!d::
sKeyName := ( flag := !flag ) ? "right" : "left"
Send , ^#{%sKeyName%}
Return
这是一行:
<!d::Send , % "^#{" . (( flag := !flag ) ? "right" : "left" ) . "}"
我不知道可以将所有内容放在一行中,所以我今天学到了一些东西。 :D
; switch between virtual desktops (win10)
; supposed to be launched in initial desktop
flag := 0
LAlt & D::
if(flag = 0){
send, {Control Down} {LWin Down} {Right} {Control Up} {LWin Up}
flag := 1
Return
}
else{
send, {Control Down} {LWin Down} {Left} {Control Up} {LWin Up}
flag := 0
Return
}
应用后,有机会显示语言栏甚至更改输入语言。请问有什么建议吗?
虽然我不能确定它打开语言栏的原因,但本文介绍了如何禁用语言栏的内置热键: https://winaero.com/blog/change-hotkeys-switch-keyboard-layout-windows-10/
您的代码也可能存在一些小问题。看起来你的牙套之间有空隙;发送命令将发送这些空格。当然,我不认为这会导致您遇到的问题。
这是您的代码的精简版,可能表现得更好:
<!d::
flag := !flag
If flag
Send , ^#{right}
Else
Send , ^#{left}
Return
这是一个使用三元运算符的更简洁的版本:
<!d::
sKeyName := ( flag := !flag ) ? "right" : "left"
Send , ^#{%sKeyName%}
Return
这是一行:
<!d::Send , % "^#{" . (( flag := !flag ) ? "right" : "left" ) . "}"
我不知道可以将所有内容放在一行中,所以我今天学到了一些东西。 :D