Skrypt Autohotkey czyniący klucze „lepkimi”

1

Z powodzeniem używam skryptu AHK przez prawie rok, który mapuje Ctrl-C i Alt-ESV (skrót Excel) do kombinacji klawiszy Win i mapuje Ctrl-Del do Ctrl-Space, Ctrl-- (usuń wiersz) .

Jednak czasami (i coraz częściej) komputer uważa, że ​​klawisz Win lub Ctrl jest nadal wciśnięty. Spędziłem dużo czasu szukając poprawki i nic nie działało dla mnie, w tym różne przepisywanie skryptów i odinstalowywanie i ponowne instalowanie AHK.

Oto mój skrypt:

#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.

;map ctrl-c, ctrl-v, and ctrl-e-s-v (paste values) to win-key combos
#a::Send ^c
#s::Send ^v
#q::Send !e,{s},{v}{Enter}

*CapsLock::Send {Media_Play_Pause}
Return  ;disable CapsLock permanently

;map win-x to ctrl-alt-/ - shortcut to open 'everything.exe', then close it automatically when it's not in focus
#x::
Send ^!/
Sleep, 1000
WinWaitNotActive, ahk_class EVERYTHING
WinClose, ahk_class EVERYTHING
return

;win-z to prt scn
#z::Send {PrintScreen}

;map ctrl-del to select whole line and delete it
~^Del::
Send +{space}
Send ^-
Send {Left}
return

Edytować: ta osoba miał ten sam problem co ja, chociaż żadna z poprawek sugerowanych w tym wątku nie pomogła mi.

Josh Friedlander
źródło

Odpowiedzi:

2

Nie wiadomo, czy to rozwiąże problem, ale możesz wypróbować ten skrypt.

; Always run your script as admin
if not A_IsAdmin
{
   Run *RunAs "%A_ScriptFullPath%"  ; Requires v1.0.92.01+
   ExitApp
}
#SingleInstance, Force
#NoEnv
SetBatchLines, -1
SetKeyDelay, 50

;There's a command for disabling CapsLock permanently
SetCapsLockState, AlwaysOff 

return

$#a::^c
$#s::^v
$#z::PrintScreen
$#q::SendEvent, ^!v!v{Enter}
$#x::
    Send ^!/
    Sleep, 1000
    WinWaitNotActive, ahk_class EVERYTHING
    WinClose, ahk_class EVERYTHING
return

$~^Del::SendEvent, +{space}^-{Left}

Przetestowano wszystkie rempas (z wyjątkiem win + x) i wydają się działać dobrze. Nie udało mi się zduplikować problemu modyfikatora, który masz.

Daj mi znać, jeśli to rozwiąże problem. Jeśli nie, możemy spróbować dostosować ogień.

GroggyOtter
źródło
2
Dziękuję - ponad to, czego szukałem! Zastosowałem twoje zmiany i uruchomiłem jako admin, i jak dotąd błąd nie występuje ponownie. Nadal ciekawi mnie, jaka konkretna zmiana powoduje błąd, chyba na deszczowy dzień.
Josh Friedlander
1
Nie ma pojęcia, co było przyczyną błędu, ale na pewno nie jesteś pierwszą osobą, którą widziałem po tym problemie. Zwykle się kończę Subreddit AHK odpowiadanie na takie pytania. Gdyby to nie zadziałało, następnym krokiem byłoby wymuszenie stanu działania wszystkich klawiszy. ¯ \ _ (ツ) _ / ¯ Cieszę się, że wszystko działa tak, jak zamierzałeś.
GroggyOtter