Отключить Backspace как Nav в Chrome, используя AutoHotKey

Я пытаюсь использовать 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

Я пытался смешать их вместе, чтобы я мог переписать поведение Backspace в окне Chrome, которое не заканчивается [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
Другие вопросы по тегам