我正在尝试使用 AutoHotKey 修复 Chrome 中的退格键。我的第一次尝试使用了以下解决方案这个问题:
#IfWinActive, ahk_class Chrome_WidgetWin_1
BackSpace::Send, {Left}{Delete}
它确实有效,但不幸的是,它还阻止我选择input
/中的文本textarea
并使用退格键将其全部删除。因此,我开始寻找一种方法来排除光标位于其中一个位置的情况。然后我发现这个答案input
,使用一个脚本来在/内部更改窗口标题textarea
,并使用以下 AHK 脚本来使用该标题更新:
SetTitleMatchMode, RegEx
#x:: ; normal hotkey
; do something
return
#IfWinActive, \[AHK\] - Google Chrome$
#x:: ; input/textarea focus hotkey
; do something
return
#IfWinActive
我一直在尝试将两者混合在一起,以便我可以重写在不以 结尾的 Chrome 窗口中 Backspace 的行为[AHK] - Google Chrome
,但到目前为止我还没有成功。我觉得我真的很接近了,只是缺少了一些东西,但我对 AHK 完全是新手,我不知道接下来该怎么做。在摆弄了上面的代码并在线搜索后,我现在得到的是:
SetTitleMatchMode 2 ; partial title matches
IfWinActive, ahk_class Chrome_WidgetWin_1 ; identify Chrome
{
#BackSpace::
If WinActive("[AHK] - Google Chrome") ; identify when within text element
{
return
}
else {
Send, {Left}{Delete}
}
}
我觉得我应该能够用一个IfWinActive
语句来实现这一点,包括 Chrome 并排除 [AHK] 内容,但是文档没有给出在第一个参数之后添加其他参数的任何示例,我自己的尝试都是徒劳的。任何帮助都将不胜感激。此外,如果有类似方法可以排除地址栏,那就太好了。
答案1
#ifWinActive, ahk_class Chrome_WidgetWin_1
bs::
clipboard = ; Clear clipboard
send ^c ; Copy any selected text
if clipboard = ; If nothing is selected
send {left}
send {del}
return
#ifWinActive