Scriptlerimi Çalarak AutoHotKey Öğrenin
(hillelwayne.com)- AutoHotKey güçlü ama ilk kullanımda göz korkutabilen bir Windows otomasyon aracı olduğu için, gerçek kişisel script koleksiyonu öğrenme materyali olarak paylaşılıyor
- Materyal toplam 14 dosyadan oluşuyor ve klasör açma, metin ekleme, program bazında kısayol genişletme gibi hemen denenebilecek otomasyon örneklerine odaklanıyor
- Geçerli tarih, em dash,
¯\_(ツ)_/¯hızlı girişi ile vim kullanıcıları için modal kısayol sistemi ve basit bir GUI demosu da içeriyor - Kısa yolu aşan pratik iş akışı otomasyonunu göstermek için zaman damgalarını UTC ve yerel saat arasında dönüştüren bir script de bulunuyor
- Her dosyada kodun ne yaptığına, bazılarında ise neden o şekilde uygulandığına dair yorumlar yer aldığı için eğitsel bir kod tabanı olarak okumaya uygun
Gerçek işe yakın AutoHotKey örnekleri koleksiyonu
- AutoHotKey'i öğrenmeyi zor bulan kullanıcılar için, kişisel olarak kullanılan scriptlerin çoğu açıklamalarla birlikte paylaşılıyor
- Tüm kod GitHub deposunda görülebilir ve toplam 14 dosyadan oluşur
- Başlıca örnekler şunlar:
Eğitsel bir kod tabanı olarak okuma yöntemi
- Bu depo, insanların kodu okuyarak öğrenebilmesi için hazırlanmış eğitsel bir kod tabanı örneğidir
- Her dosyada kodun ne yaptığına dair bolca yorum bulunur; bazı uygulamalarda ise neden belirli bir yaklaşımın seçildiği de anlatılır
- Eğitsel kod tabanlarıyla ilgili ayrı bir açıklama bülten yazısında devam ediyor
- Daha fazla açıklama gereken kısımlar GitHub issue açılarak talep edilebilir
1 yorum
Hacker News yorumları
Kodla ilgili bir tartışmaya ilk kez işe yarar bir şey katabilecekmişim gibi hissediyorum. Yazı yazan biri olarak, istediğim an boş bir notepad.exe penceresini hızla açan bir AutoHotkey betiği hazırladım;
~tuşuna basınca açılıyor, tekrar basınca kapanıyor ve içinde içerik varsa kaydetme iletişim kutusu çıkıyor.AHK'min yaptığı işin tamamı bu.
Pencereyi kapatmadan veya simge durumuna küçültmeden önceki pencereyle hızlıca gidip gelmek istediğinizde Windows'un yerleşik kısayolu Alt + Escape işe yarıyor. Alt+Tab gibi pencere genel görünümünü açmadan doğrudan bir önce odakta olan pencereye geçiyor.
AutoHotkey v1'de, pencere başlığından bir parça arayıp etkinleştiren; zaten etkinse
send, !{escape}ile geri dönen, yoksa çalıştıran türden bir switcher/launcher boilerplate'i yazabilirsiniz. Görev çubuğunu kalabalıklaştırmak istemiyorsanızWinHide/WinShowda kullanabilirsiniz; ama bazı pencerelerde pek uymuyor ve pencere algılama için bazenahk_exeveyaahk_classdaha uygun olabiliyor.WinActive("Untitled - Notepad")veWinExist("*Untitled - Notepad")kontrolleriyle kapatıp veya etkinleştirip, yoksaRun "Notepad"çalıştırma şeklinde.WinActive()veyaWinExist()fonksiyonlarını kullanırsanız birden fazla başlık koşulunuorile birleştirebilirsiniz; gerekirse"Untitled - Notepad ahk_class Notepad"gibi ahk_class koşulunu da birlikte ekleyebilirsiniz.AutoHotkey harika ama keşke dili biraz daha düzgün olsaydı. Aero Snap'in altın oranlı bir sürümünü kararlı biçimde yapmaya çalışırken epey uğraştım; birden fazla monitör ve boyutla çalışmanın bu kadar zor olması için bir sebep yok gibi görünüyor, ama garip
Loopsözdizimi veya basit hataların sessizce başarısız olması yüzünden işin tadı kaçtı ve vazgeçtim.Python için ahk modülünü de buldum ama
keyboardmodülüyle birleştirince, kısayol dinleyicisi olarak AutoHotkey kadar iyi çalışmadı.https://github.com/idbrii/daveconfig/blob/main/win/autohotke...
https://pypi.org/project/ahk/
Düğünümde AutoHotKey ile bir fotokabin yaptım. Nişanlımın Nikon'unu USB üzerinden kontrol eden basit bir yazılımı ve dizüstündeki IrfanView'i birlikte kullandım; IrfanView'i de bir klasörü izleyip her zaman en son fotoğrafı gösterecek şekilde ayarladım.
AutoHotKey ile Preview, Autofocus ve “SNAP” düğmeleri olan basit bir GUI yaptım; SNAP'e basılınca büyük bir geri sayımdan sonra fotoğraf çekiyor, kamera yazılımını simge durumuna küçültüp IrfanView'i açıyordu. Birkaç saniye sonra tekrar düğmeli GUI'ye dönmesini sağladım; davetliler sevdi, ben de fotokabin kiralama için birkaç yüz avro tasarruf edip güzel fotoğraflar elde ettim.
Bu AutoHotKey betiği benim için oyunun kurallarını değiştirdi. Ctrl + Shift + V'yi biçimsiz yapıştırmaya eşledim; panoyu metne dönüştürüp yapıştırıyor, kısa süre bekliyor ve sonra özgün panoyu geri yüklüyor.
https://learn.microsoft.com/en-us/windows/powertoys/
https://stevemiller.net/puretext/
Son 5 klip gibi çok değerli bir pano da güzel olurdu, ama bu fazla büyük bir istek olabilir.
AHK, Windows’a bağladığım uygulamalardan biri. Klavyeye äöüß, áóúñ gibi karakterler eklemek; oda ve daire ışıklarının parlaklığını kontrol etmek;
08:39 –,2023-08-22 08:39:46,2023-08-22 — Tuesdaygibi zaman damgalarını bir iki tuşla eklemek; Pause tuşu aç/kapatıldığında Tasmota destekli priz üzerinden monitörün gücünü kapatıp açmak gibi işler için kullanıyorum.Yalnız ikinci klavyeyi bir düğme pedi gibi kullanırken o tuş girişlerini de yutabilen bir özellik olmasını isterdim. Bu yüzden daha fazla düğme elde etmek için küçük bir Bluetooth klavyeyi Raspberry Pi Zero’ya bağlayarak kullanıyorum
https://www.hammerspoon.org/
https://miquelvir.medium.com/secondkeyboard-1c39e52e023b
Şu da var: https://github.com/evilC/AutoHotInterception
https://github.com/autokey/autokey
Ben de AutoHotKey’i sürekli kullanıyorum. 6 çeşit tarih/saat damgası kısayolu; sık kullandığım host’lar ve seri portlar için PuTTY/SSH başlatıcıları; Outlook, Windows Terminal, Total Commander gibi 10’dan fazla uygulama için duruma bağlı başlatıcılar; her yerde biçimlendirmesiz yapıştırma; satır sonlarını kaldırarak yapıştırma; özel karakterler ve emojiler için AltGr giriş katmanı; medya/ses kısayolları ekledim
https://gist.github.com/raveren/bac5196d2063665d2154
Kişisel Linux dizüstümde Caps Lock ile Escape tuşlarını birbirinin yerine kullanıyorum ve buna alıştım. Windows’u dual boot ettiğimde aynı ayarı Powertoys ile yapmıştım; ama şirkette Powertoys ya da Uncap kuramadığım için AutoHotKey’den başka seçeneğim yok
StackOverflow yanıtını izleyince Caps Lock ve Escape’in ikisi de iki tuşu birlikte gönderir hale geldi; bu da ara sıra Teams mesajlarımı bozuyor
https://github.com/microsoft/PowerToys
https://github.com/susam/uncap
https://stackoverflow.com/questions/38558376/how-to-map-caps...
https://github.com/jtroo/kanata
Örneğin https://github.com/evilC/TapHoldManager bunu AHK’de uyguluyor. Shift/Ctrl/Win/Alt’i
fdsavejkl;altına koyarsanız serçe parmak kullanımı azalır ve parmaklarınız home row’da daha çok kalabilirCapsLock::Esc,Esc::CapsLockProgramları global kısayollarla başlatmak gibi başka hızlı AHK iyileştirmelerini de derledim: https://nickjanetakis.com/blog/remap-and-set-global-hotkeys-...
https://superuser.com/questions/550679/where-can-i-find-wind...
https://github.com/hwalinga/dotfiles/blob/master/CapsLockCtr...
CapsLock’u başka bir tuşla birlikte basınca Ctrl, kısa basınca Esc olarak çalışan çift işlevi de uyguluyor
Başkalarının da söylediği gibi AHK, Windows’ta yapmanıza imkân verdiği şeyler açısından şaşırtıcı derecede kapsamlı. Kişisel olarak AHK sayesinde 100 bin dolardan fazla tasarruf ettiğimi ya da kazandığımı söyleyebilirim.
Ama AHK dilinin kendisi yazması en keyifli olanlardan değil. Python ya da Lua’da neden aynı ölçüde güçlü bir araç olmadığını merak ediyorum; https://github.com/pywinauto/pywinauto da pratikte AHK kadar iyi çalışmadı. Sonuçta altında WinAPI var; iyi bir sarmalayıcı kütüphane varsa C# da bir seçenek olabilir. AHK’nin popüler olmasının nedeni bence çirkin ama çalışıyor olması.
https://www.autohotkey.com/boards/viewtopic.php?f=80&t=77248
AutoHotKey harika. Daha hızlı uygulama değiştirme için kullanıyorum; benim kurulumumda Right Alt tuşunu “kısayol etkinleştirme” tuşu yapıp her şeyi onunla kontrol ediyorum.
Basılı tutup bir harf tuşuna bastığımda ilgili uygulamanın örnekleri arasında dolaşıyor. Örneğin Alt+C VS Code penceresine geçiyor; Alt+F türevleri ise belirli bir profille yeni bir Chrome penceresi gibi yeni uygulama örnekleri açıyor. Alt+sayı mevcut odaktaki pencereye atanabiliyor; Alt’a dokununca düzenleme modu açılıyor ve mevcut pencereyi sayı tuşlarına atayabiliyorum. Düzenleme modunda H/J/K/L yukarı/aşağı/sol/sağ gezinme tuşları oluyor; bu da uygulama değiştirmeyi çok daha hızlandırıyor.
Eskiden Diablo 3 oynarken bulup değiştirdiğim bir betik en etkileyicisiydi. Fare kullanan elimi mousepad’e fazla sert bastırdığım için tekrarlayan zorlanma yaralanması sorunu yaşamaya başlamıştım; bu yüzden kontrolcüyle oynayabilmenin bir yolunu aradım.
O betik, analog hareketi karakterin etrafındaki küçük bir çembere bağlayarak herhangi bir yöne akıcı biçimde koşmayı sağlıyordu; bir düğmeye basınca menzili uzağa değiştirip menzilli yetenekler kullanabiliyordum. Sınıfa göre biraz özelleştirince şaşırtıcı derecede iyi çalıştı.