AutoHotkey'de Tuşları Yeniden Atama: Hızlı ve Güvenilir Yöntemler
AutoHotkey'de tuşları yeniden atamak için bir .ahk dosyası oluşturmanız, çalıştırmanız ve CapsLock::Ctrl (AHK v2/v1) gibi bir kural eklemeniz yeterlidir. Karmaşık senaryolar için hotkey bloklarını, sc/vk kodlarını ve uygulamalara göre #HotIf kullanımını tercih edin.
Hızlı Başlangıç: Betik İskeleti ve Temel Yeniden Atama
Önerilen seçenek AutoHotkey v2'dir (daha katı sözdizimi, daha az "sihir"). Minimum başlık bölümü:
#Requires AutoHotkey v2.0
#SingleInstance Force
SendMode "Input"
En basit yeniden atama (remap) — "tuş → tuş":
CapsLock::Ctrl
RAlt::AppsKey
XButton1::Backspace
Bir tuşu "boş eylem" ile devre dışı bırakabilirsiniz:
RWin::Return
Gereksiz yere Ctrl/Alt/Win tuşlarını devre dışı bırakmayın; kendinizi alışkın olduğunuz kombinasyonlardan mahrum bırakabilirsiniz. Acil durum çıkışı ekleyin (aşağıya bakın).
AHK'de Değiştirici Tuş Gösterimleri
| Gösterim | Anlamı |
|---|---|
^ | Ctrl |
! | Alt |
+ | Shift |
# | Win |
Kombinasyonların yeniden atanmasına örnekler:
^x::^c ; Ctrl+X → Ctrl+C
#+s::#s ; Win+Shift+S → Win+S
AHK v1 için not: Mantık aynıdır, ancak bloklar genellikle farklı yazılır; betik "başlamazsa" sürümü ve
#Requiresyönergesini kontrol edin.
Yeniden Atama Değil de Mantık Gerektiğinde: Send, Basılı Tutma ve sc/vk
Tuş dizileri göndermeniz gerekiyorsa hotkey bloğu ve Send kullanın:
F6:: {
Send "^v"
Sleep 150
Send "{Enter}"
}
Popüler bir seçenek olan "Tek dokunuşta Esc, basılı tutulduğunda Ctrl olarak CapsLock":
CapsLock:: {
KeyWait "CapsLock", "T0.18"
if (ErrorLevel) {
Send "{Ctrl down}"
KeyWait "CapsLock"
Send "{Ctrl up}"
} else {
Send "{Esc}"
}
}
Kural, klavye düzeni veya standart dışı bir klavye nedeniyle "bozuluyorsa", neredeyse her zaman tuş adı yerine sc (tarama kodu) ile bağlamak işe yarar.
Tarama Kodu (sc) ve Sanal Tuş (vk): Hangisini Seçmeli?
scXXX— fiziksel tuşa (konuma) bağlama.vkXX— Windows koduna bağlama.
Tarama koduna göre yeniden atama örneği:
sc029::Esc
VK/SC değerlerini öğrenmek için AutoHotkey menüsünde Key history (Tuş Geçmişi) öğesini açın ve ilgili tuşa basın.
Belirli Bir Programda Sadece Yeniden Atama: #HotIf
#HotIf WinActive("ahk_exe notepad.exe")
CapsLock::Esc
#HotIf
Böylece çakışmalardan kaçınırsınız: editörde bir davranış, oyunda/iş yazılımında başka bir davranış.
Tanılama ve Güvenli Kullanım
Betikleri anında kapatmak için bir "panik düğmesi" ekleyin:
F12::ExitApp
Yeniden atama çalışmıyorsa şunları kontrol edin:
- betiğin çalıştığından (sistem tepsisindeki simge);
- AHK sürümünün sözdizimine uygun olduğundan (
#Requires AutoHotkey v2.0); - aynı tuş için yinelenen kuralların olmadığından;
- hedef uygulamanın yönetici olarak çalıştığından (bu durumda betiğin de genellikle aynı haklarla çalışması gerekir);
- oyunlarda/anti-hile yazılımlarında giriş yakalamanın engellenebileceğinden —
scdeneyin ve/veya kuralları sadece oyun dışında uygulayın.
Sık Yapılan Hatalar
- v1/v2 karıştırılması ve "sessiz" betik veya hatalar alınması.
ExitAppacil durum tuşu olmadanWin/Ctrl/Alttuşlarının devre dışı bırakılması.- Yeniden atama gereken yerde
Sendyazılması (sonuç olarak değiştirici tuşlar taşınmaz ve "basılı tutma sırasında tekrar" çalışmaz). - Farklı klavye düzenlerinde (özellikle dizüstü bilgisayarlarda) tuş adına bağlanılması, oysa
sc/vkgerekmesi. #HotIfkoşulunun#HotIfsatırıyla kapatılmaması ve kuralların diğer uygulamalara "sızması".
SSS
İki tuşun yerini "değiştirebilir" miyim?
Evet, iki satır ile:
a::b
b::a
Neden CapsLock::Return CapsLock'u devre dışı bırakır?
Parametresiz Return, "hiçbir şey yapma" anlamına gelir, yani orijinal eylem engellenir.
Hangisi daha güvenilir — vk mı yoksa sc mi?
Farklı klavye düzenlerinde aynı fiziksel konum için genellikle sc daha güvenilirdir. Windows mantığı/özel tuşlar için bazen vk daha kullanışlıdır.