Vô hiệu hóa Backspace như Nav trong Chrome bằng AutoHotKey


1

Tôi đang cố gắng sử dụng AutoHotKey để sửa lỗi phím xóa lùi trong Chrome. Nỗ lực đầu tiên của tôi sử dụng giải pháp sau đây từ câu hỏi này :

#IfWinActive, ahk_class Chrome_WidgetWin_1
BackSpace::Send, {Left}{Delete}

Nó hoạt động, nhưng thật không may, nó cũng ngăn tôi chọn văn bản trong một input/ textareavà loại bỏ tất cả bằng phím xóa lùi. Vì vậy, tôi bắt đầu tìm cách để loại trừ các trường hợp con trỏ nằm trong một trong những trường hợp đó. Sau đó tôi đã tìm thấy câu trả lời này , với một tập lệnh để thay đổi tiêu đề cửa sổ khi bên trong một input/ textareavà tập lệnh AHK sau để sử dụng bản cập nhật tiêu đề đó:

SetTitleMatchMode, RegEx

#x:: ; normal hotkey
     ; do something
    return

#IfWinActive, \[AHK\] - Google Chrome$
    #x:: ; input/textarea focus hotkey
         ; do something
        return

#IfWinActive

Tôi đã cố gắng kết hợp cả hai lại với nhau, để tôi có thể viết lại hành vi của Backspace khi trong cửa sổ Chrome không kết thúc [AHK] - Google Chrome, nhưng cho đến nay tôi đã không thành công. Tôi cảm thấy mình thật sự rất thân thiết và chỉ thiếu một cái gì đó, nhưng tôi là một người mới tuyệt đối ở AHK và tôi không biết phải đi đâu từ đây. Sau khi kết hợp với đoạn mã trên và tìm kiếm trực tuyến, đây là những gì tôi có ngay bây giờ:

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}
    }
}

Tôi cảm thấy mình có thể thực hiện điều này bằng một IfWinActivetuyên bố duy nhất để bao gồm Chrome và loại trừ nội dung [AHK], nhưng các tài liệu không đưa ra bất kỳ ví dụ nào để thêm các tham số khác qua thông số đầu tiên và những nỗ lực của riêng tôi đã được vô ích. Bất kỳ sự giúp đỡ này sẽ được đánh giá rất nhiều. Ngoài ra, nếu có một cách để loại trừ tương tự thanh địa chỉ, đó sẽ là sao.

Câu trả lời:


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

Thật gọn gàng, nhưng thật không may, vấn đề tôi đang giải quyết cũng xảy ra trong một trường văn bản trong một số điều kiện nhất định. Những gì tôi cần xác định là nếu con trỏ ở trong trường văn bản văn bản được chọn, trong trường hợp đó tôi nên gửi {xóa} thay vì {left} {xóa}
DiMono

Tôi mới nhận ra rằng tôi không biết lý do ban đầu của bạn về AHK là gì, vì vậy tôi phải hỏi, việc nhấn backspace trong các trường văn bản trong Chrome khiến trình duyệt điều hướng trở lại?
adaaaam

Nó là. Backspace luôn luôn hoặc hầu hết thời gian (không nhớ, AHK tại nơi làm việc) điều hướng trở lại ngay cả khi tôi đang cố gắng xóa văn bản tôi đã viết. Điều này đặc biệt gây khó chịu khi tôi chơi một thứ gì đó như Town of Salem, nơi một phần lớn của trò chơi đang gõ và nếu tôi nhấn backspace tôi thực sự bị loại khỏi trò chơi.
DiMono

Được rồi tôi đã cập nhật mã để nó kiểm tra xem có gì được chọn trước không.
adaaaam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.