使用 AutoHotKey 在 Chrome 中停用 Backspace 作為導航

使用 AutoHotKey 在 Chrome 中停用 Backspace 作為導航

我正在嘗試使用 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

相關內容