Jeśli uważasz, że skróty systemowe lub aplikacji nie działają, AutoHotkey (AHK) otwiera świat niestandardowych skrótów dla systemu Windows. W ciągu kilku minut będziesz mógł uruchamiać aplikacje, przekształcać tekst w locie, łączyć kombinacje i automatyzować powtarzające się zadania, tak jakbyś robił to od lat.
Oprócz typowych kombinacji klawiszy, za pomocą AHK możesz twórz tryby czasowe, inteligentne ciągi znaków i złożone sekwencje Aktywowane jednym kliknięciem. Zobaczysz przykłady z życia wzięte dotyczące zarządzania schowkiem, wstawiania znaków specjalnych, przełączania okien czy przekształcania dat; dowiesz się również, jak uruchamiać skrypty w systemie Windows i kompilować je do plików .exe, aby można było z nich korzystać na dowolnym komputerze.
Czym jest AutoHotkey i co można za jego pomocą zrobić?
AutoHotkey to lekki język skryptowy przeznaczony do Windows Konwertuje kombinacje klawiszy i ciągi tekstowe na akcje systemowe. W przeciwieństwie do tradycyjnego pliku .bat, oferuje bardzo elastyczną składnię, dostęp do okien i elementów sterujących oraz bardzo wydajny moduł wysyłania naciśnięć klawiszy (Send, SendInput itp.).
Pojedynczy plik .ahk może zawierać tak wiele skrótów klawiszowych i transformacji tekstu (tzw. „gorących ciągów”) Jak chcesz. Możesz mieć jeden skrypt główny do wszystkiego lub wiele skryptów dla każdego obszaru (biuro, rozwój, rozrywka). Po uruchomieniu AHK nasłuchuje w tle Twoich naciśnięć klawiszy i uruchamia wszystko, co zaprogramowałeś.
Najlepsze jest to, że nie musisz być programistąKopiowanie, wklejanie i adaptowanie przykładów działa cuda. Jeśli uczysz się w innych językach, składnia zmiennych, warunków i timerów będzie Ci znajoma. A jeśli nie, przekonasz się, że jest ona bardzo naturalna.
Instalacja, pierwszy skrypt i podstawowe koncepcje
Pobierz i zainstaluj AHK z oficjalnej strony internetowej, a następnie w dowolnym folderze: tworzy plik z rozszerzeniem .ahkNa przykład hello_world.ahk. Kliknij prawym przyciskiem myszy, Edytuj skrypt i wklej coś prostego do przetestowania:
^+!u:: ; Ctrl + Shift + Alt + U
MsgBox, 0, ¡Hola mundo!, Soy yo de nuevo :)
return
W AHK modyfikatory są określane skrótem: ^ to Ctrl, + to Shift, ! to Alt i :: definiuje skrót. Po zapisaniu i dwukrotnym kliknięciu pliku .ahk skrypt staje się aktywny, a naciśnięcie Ctrl+Shift+Alt+U spowoduje wyświetlenie komunikatu.
Warto zapamiętać kilka kluczowych symboli składniowych: :: do deklarowania skrótów klawiszowych, := do przypisańi komentarze ze znakiem ; na końcu wiersza. W ten sposób możesz zanotować, co robi każdy skrót, bez wpływu na kod.
Skróty klawiszowe i ciągi znaków: skróty i przekształcanie tekstu

„Skrót klawiszowy” to tradycyjny skrót. Na przykład, mapuj Ctrl+Q na Menedżera zadań wysyłanie natywnego skrótu Ctrl+Shift+Esc:
^q:: ; Ctrl + Q
Send ^+{Esc}
return
Możesz również wpisać tekst bezpośrednio w miejscu, w którym znajduje się kursor: od wiadomości e-mail do szybkich szablonówDwiema przydatnymi opcjami są zapisywanie i kopiowanie do schowka:
; Escribir el correo
^!m:: ; Ctrl + Alt + M
SendInput micorreo@prueba.com
return
; Guardarlo en el portapapeles
^!p:: ; Ctrl + Alt + P
Clipboard := "micorreo@prueba.com"
return
Gorące struny są magiczne dla autokorekta i rozszerzenie Tekst. Zastąp błędnie napisany tekst na bieżąco lub wstaw długie bloki ze słowami kluczowymi:
; Autocorrección
:*?:salido::saludo
:*?:Genebta::Genbeta
; Expansión de texto
:*?:mimensaje1::Estimado cliente, mi nombre es ...
Możesz nawet wstaw symbole specjalne bez szukania kodu Alt. Na przykład, ± wpisując ++– i myślnik za pomocą Alt + -:
; ± con ++--
:*?:++--::±
; Guion largo con Alt + -
!-::Send —
Tryb „nieskończonej” kombinacji jedną ręką: Ctrl+Q jako „supermodyfikator”
Bardzo skutecznym pomysłem na zwiększenie produktywności jest wykorzystanie Ctrl+Q jako tymczasowy wyzwalacz, który zamienia następny klawisz na działanieZamiast używać kombinacji takich jak Ctrl+Q, Ctrl+W itd., Ctrl+Q aktywuje „tryb” jednym ruchem: następnie wpisujesz literę i uruchamiasz odpowiadający jej skrypt.
Na przykład, Ctrl+Q, a następnie Q uruchamia Skrypt 1, a Ctrl+Q, a następnie W uruchamia Skrypt 2. Po naciśnięciu tego klawisza wracasz do normy; w ten sposób możesz mnożyć kombinacje jedną ręką, nie odrywając jej od klawiatury.
Martwisz się, że zabraknie Ci kluczy? Dodaje „podwójne dotknięcie” w celu powiększenia mapy: Ctrl+Q, Q, Q dla skryptu 3; Ctrl+Q, W, W dla skryptu 4. Jeśli zajdzie taka potrzeba, możesz pójść dalej za pomocą trzykrotnego stuknięcia.
Aby uzyskać wizualną informację zwrotną, bardzo przydatne jest naciśnięcie klawiszy Ctrl+Q w celu wywołania mały pomarańczowy interfejs graficzny w prawym górnym rogu, mały kwadracik, który znika po naciśnięciu następnego klawisza i potwierdza, że tryb został aktywowany.
Un podstawowy schemat W AHK v1 (prostym i rozszerzalnym) mogłoby to wyglądać następująco:
#SingleInstance Force
#InstallKeybdHook
SetTitleMatchMode, 2
; Ctrl+Q entra en modo de combinaciones
^q::
; Pequeña GUI naranja arriba a la derecha
Gui, +AlwaysOnTop -Caption +ToolWindow
Gui, Color, FFA500
Gui, Show, x%A_ScreenWidth%-40 y20 w20 h20, Modo
; Espera una tecla (1 carácter) y detecta ‘doble toque’ suave
Input, Key, L1 T3 V ; L1: 1 char, T3: 3s de timeout, V: visible en variable
if (ErrorLevel = "Timeout") {
Gui, Destroy
return
}
; Capturar posible doble toque
first := Key
KeyWait, %first%, D T0.3 ; si se pulsa la misma tecla muy rápido, cuenta como doble toque
if (ErrorLevel) {
; Toque simple
Gosub, HandleSingleTap
} else {
; Doble toque
Gosub, HandleDoubleTap
}
Gui, Destroy
return
HandleSingleTap:
; Mapea letras a scripts ‘simples’ tras Ctrl+Q
if (first = "q") {
; Script 1
Run, notepad.exe
} else if (first = "w") {
; Script 2
Run, calc.exe
}
return
HandleDoubleTap:
; Mapea doble toque a otros scripts
if (first = "q") {
; Script 3
MsgBox, 64, Doble toque, Has pulsado Q dos veces
} else if (first = "w") {
; Script 4
MsgBox, 64, Doble toque, Has pulsado W dos veces
}
return
Dzięki tej strukturze, Dodawanie kolejnych liter lub gestów jest tak proste, jak powiększanie bloków Jeśli…w przeciwnym razie. Jeśli chcesz segmentować według „obszarów”, możesz zarezerwować Ctrl+Q do pracy, Ctrl+W do otwierania aplikacji, a Ctrl+R do rozrywki (np. Roblox): Ctrl+R + P otwiera skrypt fortepianowy; podwójne P ładuje inny utwór itd.
Sekwencje złożone: mapuj Ctrl+G na Ctrl+T + Alt+G bez zwalniania Ctrl (możliwość spamowania)

Inny praktyczny przypadek: potrzebujesz tego Ctrl+G wysyła sekwencję Ctrl+T, a następnie Alt+G, a jeśli przytrzymasz Ctrl, możesz powtórzyć skrót klawiszowy bez zmiany modyfikatora. Celem jest zapewnienie płynności i braku spamu.
Kluczem jest użycie Wyślij dane wejściowe z {Blind}, który zachowuje stan modyfikatorów, które już fizycznie posiadasz. Dobrym pomysłem jest również użycie prefiksu $, aby uniknąć ponownego użycia tego samego klawisza skrótu:
SendMode Input ; más fiable y rápido
$^g::
; {Blind} conserva el estado de Ctrl que ya estás pulsando físicamente
SendInput {Blind}^t!g
return
Ten wzór pozwala uniknąć konieczności ręcznego wpisywania {CtrlDown}/{CtrlUp} na końcu, szanuje rzeczywisty stan klawiatury i pozwala na powtarzanie kombinacji bez przerw, o ile przytrzymujesz klawisz Ctrl. Jeśli któryś z programów jest kapryśny, możesz dodać bardzo krótki czas uśpienia między wysyłaniem:
$^g::
SendInput {Blind}^t
Sleep 10
SendInput {Blind}!g
return
Jeśli chcesz odizolować klawisz skrótu od innych, możesz zwiększyć jego priorytet za pomocą #UseHook na początku skryptu, uzyskanie stabilności podczas spamowania w aplikacjach mających własną warstwę skrótów.
Przydatne codzienne automatyzacje: daty, schowek i wyszukiwanie
Bardzo powszechną potrzebą jest wpisz nazwę bieżącego lub poprzedniego miesiąca po hiszpańsku, bez popełniania błędów i polegania na klawiaturze. Poniższe fragmenty rozwiązują ten problem w sposób przejrzysty:
; Mes actual (español)
^+!F4:: ; Ctrl + Shift + Alt + F4
time := A_NowUTC
FormatTime, mes, %time% L0x0C0A, MMMM ; Español (España)
SendInput, %mes%
return
; Mes anterior (cálculo desde día 1 y restar un día)
^+!F5:: ; Ctrl + Shift + Alt + F5
date := (A_YYYY . A_MM . "01")
date += -1, days
FormatTime, mes_anterior, %date% L0x0C0A, MMMM
SendInput, %mes_anterior%
return
Jeszcze bardziej ambitnie: na arkuszu (Excel lub Arkusze Google) skopiuj komórkę, zastąp poprzedni miesiąc bieżącym i wklej wynik bez opuszczania klawiatury:
^+!F6:: ; Ctrl + Shift + Alt + F6
; Mes actual y anterior en español (España)
time := A_NowUTC
FormatTime, mes_actual, %time% L0x0C0A, MMMM
date := (A_YYYY . A_MM . "01")
date += -1, days
FormatTime, mes_anterior, %date% L0x0C0A, MMMM
; Copiar desde la celda activa
Send, ^c
ClipWait, 0.5
texto := Clipboard
; Reemplazo directo
texto := StrReplace(texto, mes_anterior, mes_actual)
Clipboard := texto
; Pegar de vuelta
Send, ^v
return
Kolejny klasyk: Otwórz swoją ulubioną witrynę internetową lub wyszukaj to, co masz w schowku w Google, bez dotykania myszki. Dwa bardzo krótkie przepisy:
; Abrir una web concreta
^+g::Run "https://www.genbeta.com"
return
; Buscar en Google el texto del portapapeles (o del cursor)
^+c::
{
Send, ^c
Sleep 50
Run, https://www.google.com/search?q=%clipboard%
Return
}
Kontrola systemu w locie: głośność, kosz i okna

Jeżeli Twoja klawiatura nie posiada klawiszy multimedialnych, możesz przypisz głośność do wartości liczbowych i wycisz za pomocą przycisku Pause, nie tracąc przy tym głowy z powodu menu i ikon:
+NumpadAdd:: Send {Volume_Up}
+NumpadSub:: Send {Volume_Down}
break::Send {Volume_Mute}
return
Opróżnianie Kosza szybkim gestem i bez konieczności potwierdzania jest również mile widziane. Windows + Del do natychmiastowego czyszczenia:
#Del::FileRecycleEmpty
return
Jeśli pracujesz z wieloma oknami, umieszczenie jednego z nich na pierwszym planie może zapobiec niepotrzebnym kliknięciom. Ctrl + Spacja, aby wymusić „Zawsze na wierzchu” na aktywnym:
^SPACE:: Winset, Alwaysontop, , A
return
Uruchom system Windows i skompiluj do pliku .exe
Aby Twój scenariusz był zawsze gotowy, dodaj to do swojego loginuNaciśnij Win+R i uruchom shell:startup. Spowoduje to otwarcie folderu startowego. Wklej tam skrót do pliku .ahk, a system Windows automatycznie uruchomi go podczas uruchamiania.
Czy zamierzasz używać go na komputerach, na których nie zainstalowano AHK? Skompiluj skrypt do pliku .exe, klikając prawym przyciskiem myszy > Kompiluj skrypt i dystrybuuje ten samowystarczalny plik wykonywalny. Zużycie energii jest zazwyczaj minimalne, więc można mieć zawsze załadowanych wiele automatyzacji bez obciążania systemu.
Dobre praktyki, dzięki którym wszystko będzie działać sprawnie i szybko
Podczas pracy z naciśnięciami klawiszy należy używać Wejście SendMode zapewniające większą niezawodność i szybkości. Jeśli w aplikacji brakuje rytmu, wprowadź krótkie przerwy (5–20 ms) między kluczowymi krokami lub przełącz się na SendEvent w tym bloku.
Aby uniknąć kolizji między klawiszami skrótu, należy rozważyć #UseHook i #IfWinActive (zakresy na okno). Na przykład niektóre kombinacje działają w Excelu, a inne w przeglądarce. A dzięki $ zapobiegasz przypadkowemu uruchomieniu się skrótu klawiszowego.
Jeśli zamierzasz tworzyć „tryby” takie jak Ctrl+Q, dodaj wizualne sprzężenie zwrotne z minimalnym interfejsem graficznym i rozsądny czas oczekiwania. Doświadczenie użytkownika jest znacznie lepsze, gdy wiesz, że tryb został aktywowany i wyraźnie widać, kiedy się kończy.
Na koniec udokumentuj. Komentarz; obok każdego skrótu klawiszowego lub na początku każdej sekcji Dzięki temu nie zapomnisz o rzadko używanych skrótach i sprawia, że skrypt można utrzymywać przez kolejne miesiące.
Stosując te techniki, zyskujesz doskonały system umożliwiający zwiększenie liczby operacji wykonywanych jedną ręką, zamianę ciągów znaków na użyteczny tekst i łączenie działań w łańcuchy bez dotykania myszy. Od rozszerzeń tekstu i natychmiastowych wyszukiwań po „nieskończone” tryby klawiszy i sekwencje spamoweDzięki AutoHotkey możesz dostosować system Windows dokładnie do swojego sposobu pracy, nie komplikując sobie życia.