Wyłącz wadliwy klawisz strzałki w prawo za pomocą przycisku autohotkey

0

Zepsułem trochę wody na klawiaturze, a teraz okresowo prawy klawisz strzałki jest aktywowany bez naciskania go (np. Pliki PDF przeskakują o jedną stronę do przodu, YouTube pomija 5 sekund itp.). Użyłem internetowego keyloggera ( http://unixpapa.com/js/testkey.html ), aby sprawdzić, czy jest to klawisz strzałki w prawo (keyCode = 39) z szybkim klawiszem i kluczem. Dlatego próbowałem go wyłączyć za pomocą Autohotkey, takiego jak:

Right::return

(zgodnie z tym rozwiązaniem ) Ale bezskutecznie. Idealnie, chciałbym mieć zarejestrowaną strzałkę w prawo tylko, jeśli jest naciśnięta dłużej niż np. 0,5 s, ale w najgorszym przypadku akceptuję jej całkowite wyłączenie (wtedy mogę zmienić mapę Shift+Left::Right)

Każda pomoc jest mile widziana!

Edycja: W tej chwili mój skrypt wygląda następująco:

    #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn  ; Enable warnings to assist with detecting common errors.
    SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

    SC063::Pause
    +BS::Del
    ^BS::run, taskmgr
    Right::return
Andarin
źródło
Czy próbowałeś fizycznie usunąć klucz?
Burgi,
Usunąłem plastikowy przycisk, ale nadal trwa. Mam laptopa Thinkpad, w którym pod plastikową obudową znajduje się jakiś gumowy przedmiot ( zdjęcie ) - nie jestem pewien, czy mogę go usunąć bez całkowitego zniszczenia.
Andarin
Czy próbowałeś użyć suszarki do włosów, aby upewnić się, że jest naprawdę sucha?
Kody Brown
Podczas majstrowania przy obejściach upewnij się, że masz nową klawiaturę na zamówienie. W serwisie eBay kosztują tylko około 10 USD i instalacja zajmuje tylko kilka minut.
Mika
Nie zalogowałem się przez jakiś czas, ale teraz czytam twoje odpowiedzi. Dziękuję za Twój czas. Zamówiłem nową klawiaturę (moja klawiatura była / jest naprawdę sucha, niestety ...)
Andarin

Odpowiedzi:

0

Popieram sugestię suszarki do włosów (ostrożnie). Możesz także spróbować umieścić go w dużej torbie ryżu przez noc, aby usunąć wilgoć.

Zwrot przycisk jest {Enter}, jak w jednym z następujących poniżej. Zwrot jest inaczej interpretowany jako zwrot z podprogramu, a nie klawisz Enter.

Right::{Enter}
Right::Send {Enter}
Right::SendInput {Enter}

Send instrukcje nie są konieczne, ale przydają się, jeśli potrzebujesz wykonać specjalne kombinacje.

Aby sprawdzić czas, możesz monitorować naciśnięcia klawiszy w górę i w dół, aby określić różnicę czasu, a następnie wysłać tylko wtedy, gdy czas jest większy niż ustawiona wartość (500 ms = pół sekundy).

Right::                      
    timedown := A_TickCount
    ; no tilde on hotkey definition and no SendInput {Right} here
    ; means the keystroke down will get discarded
return

Right Up::
    timeUp := A_TickCount

    ; interval between down and up has to be half second or more, otherwise ignore
    if ((timeUp - timeDown) >= 500)     
        SendInput {Right}
return

Oczywiście możesz uprościć powyższe i pozbyć się TimeUp, właśnie dla jasności ...

Right Up::
    if ((A_TickCount - timeDown) >= 500)     
        SendInput {Right}
return

Aby całkowicie zmienić przypisanie:

Right::return        ; ignores all right button presses by doing nothing and returning
+Left::Right         ; send right if Shift+Left is detected

lub...

Right::return        ; ignores all right button presses by doing nothing and returning
 +Right::Right        ; send right if Shift+Right is detected

Ponadto, jeśli nadal masz problemy, możesz również użyć AutoHotkey jako rejestratora kluczy, który powie ci wszystkie naciśnięcia klawiszy, w tym te, które może zignorować i kolejność ich przetwarzania. Otwieranie uruchomionego programu za pomocą ikony na pasku zadań i wybierz Widok> Historia kluczy.

JJohnston2
źródło
Dziękuję za bardzo szczegółową odpowiedź - i przepraszamy za odpowiedź tak późno. Wypróbuję to dziś wieczorem! (Przepraszam, nie mogę dać +1, ale nie mam wystarczającej reputacji)
Andarin