Otomatik tuş kullanarak hatalı sağ ok tuşunu devre dışı bırakın


0

Klavyemin üzerine biraz su döktüm ve şimdi periyodik olarak sağ ok tuşu basmadan aktif hale getirildi (örn. PDF'ler bir sayfa ileri atlar, YouTube 5 saniye atlar vb.). Hızlı bir keydown ve keyup sinyali ile sağ ok tuşu (keyCode = 39) olduğunu doğrulamak için çevrimiçi bir keylogger ( http://unixpapa.com/js/testkey.html ) kullandım. Bu nedenle, Autohotkey'i aşağıdaki gibi kullanarak devre dışı bırakmayı denedim:

Right::return

( bu çözümü takip ederek) Ancak boşuna. İdeal olarak, sadece, örneğin, 0.5s'den daha uzun basıldığında Sağ ok'un kaydedilmesini istiyorum, ancak en kötü durumda, tamamen kapanmasını kabul ediyorum (sonra yeniden başlayabilirim Shift+Left::Right)

Herhangi bir yardım çok takdir edilmektedir!

Düzenleme: Şu anda, benim komut dosyası şöyle görünür:

    #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

Anahtarı fiziksel olarak çıkarmayı denedin mi?
Burgi

Plastik düğmeyi çıkardım ama devam ediyor. Plastik kabuğun altında bir çeşit kauçuk şey olduğu bir Thinkpad dizüstü bilgisayarım var ( resim ) - Onu tamamen yok etmeden çıkarabileceğimden emin değilim.
Andarin

Gerçekten kuru olduğundan emin olmak için saç kurutma makinesi kullanmayı denediniz mi?
Kody Brown

Geçici çözümlerle uğraşırken, sırayla yeni bir klavye olduğundan emin olun. Onlar eBay'de sadece 10 $ 'dır ve kurması birkaç dakika sürmez.
Mica

Bir süredir giriş yapmadım, ama şimdi cevaplarını okudum. Zaman ayırdığınız için teşekkür ederim. Yeni bir klavye sipariş ettim (
klavyem

Yanıtlar:


0

İkinci olarak saç kurutma makinesi önerisini (dikkatlice). Nemi dışarı çekmek için gece boyunca büyük bir torba pirinç koymayı da deneyebilirsiniz.

Geri dönüş düğmesi , {Enter}aşağıdakilerden birinde olduğu gibidir. Geri dönüş, aksi takdirde, giriş anahtarından ziyade, bir alt programdan geri dönüş anlamına gelir.

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

Send ifadeler gerekli değildir, ancak özel kombinasyonlar yapmanız gerekirse kullanışlıdır.

Zamanlamayı kontrol etmek için, zaman farkını belirlemek için tuşların yukarı ve aşağı tuşlarını izleyebilir ve ardından zamanın belirlenmiş bir miktardan büyük olması durumunda gönderebilirsiniz (500ms = yarım saniye).

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

Açıkçası, yukarıda basitleştirmek ve sadece netlik için listelenen, TimeUp kurtulmak olabilir ....

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

Tamamen yeniden atamak için:

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

veya...

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

Ayrıca, hala sorun yaşıyorsanız, AutoHotkey'i, görmezden gelebilecekler de dahil olmak üzere tüm tuş vuruşlarını ve işledikleri sırayı da gösteren bir anahtar günlüğü olarak da kullanabilirsiniz. Çalışan bir programı tepsi simgesinden açma ve Görünüm> Anahtar Geçmişi'ni seçin.


Çok ayrıntılı cevabınız için teşekkür ederim - ve bu geç cevap verdiğiniz için üzgünüm. Bu akşam deneyeceğim! (Üzgünüm, +
1'leyemiyorum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.