Answers:
使用大括号进行原始键解释仅适用于发送命令。所以,来图[来{和]到}你可以使用:
[::Send, {{}
]::Send, {}}
注意:用Shift等效键重新映射键是很麻烦的,因为即使不是所有键盘,大多数键盘每次也会发送相同的扫描代码,唯一的不同是Shift键的引入(具有自己的扫描代码)。
例如,按[我的键盘将发送扫描代码01A
并产生一个[
。按LShift+ [发送扫描代码,02A
并 01A
产生一个{
。
我已经用一些聪明的逻辑成功地克服了scancode的问题!使用以下格式,您应该能够将任何键与其Shift对切换。密钥重复也应该起作用。
*$[::
if (GetKeyState("Shift"))
Send, {[}
else
Send, {{}
return
*$]::
if (GetKeyState("Shift"))
Send, {]}
else
Send, {}}
return
*$[::
if (GetKeyState("Shift"))
SendInput, {[ Down}
else
SendInput, {{ Down}
return
*$]::
if (GetKeyState("Shift"))
SendInput, {] Down}
else
SendInput, {} Down}
return
*$[ Up::
if (GetKeyState("Shift"))
SendInput, {[ Up}
else
SendInput, {{ Up}
return
*$] Up::
if (GetKeyState("Shift"))
SendInput, {] Up}
else
SendInput, {} Up}
return
如果在没有看到以上答案的情况下遇到问题,我将在下面的示例中添加一些字符串。
:*?:[::
SendInput, {Shift Down}`[{Shift up}
return
:*?:]::
SendInput, {Shift Down}`]{Shift Up}
return
:*?:{::
SendInput, `[
return
:*?:}::
SendInput, `]
return
如果您将任何快捷方式与大括号键一起使用,则第一个答案是不好的解决方案,因为它使它们破了。兼容快捷方式的版本:
$[::Send {{ Down}
$[ Up::Send {{ Up}
+$[::Send {[ Down}
+$[ Up::Send {[ Up}
$]::Send {} Down}
$] Up::Send {} Up}
+$]::Send {] Down}
+$] Up::Send {] Up}
实际上,在编程语言中,圆括号的使用频率是大括号的两倍,因此,我提供了以下版本:
#NoEnv
#NoTrayIcon
#SingleInstance force
#MaxHotkeysPerInterval 200
; Swap [] with ()
[::Send {( Down}
[ Up::Send {( Up}
]::Send {) Down}
] Up::Send {) Up}
+9::Send {[ Down}
+9 Up::Send {[ Up}
+0::Send {] Down}
+0 Up::Send {] Up}
; Swap " with '
$'::Send "
+$'::Send '