AutoHotkey Komut Dosyası Nasıl Yazılır

AutoHotkey, fantastik ama karmaşık bir yazılım parçasıdır. Başlangıçta, özel kısayol tuşlarını farklı eylemlere yeniden bağlamak amaçlanmıştı, ancak şimdi tam bir Windows otomasyon paketidir.

Genel konsept oldukça basit olduğu için AHK'nın yeni kullanıcılar için öğrenilmesi özellikle zor değil, ancak tam, Turing eksiksiz bir programlama dilidir. Bir programlama geçmişine sahipseniz veya kavramlara aşina iseniz, sözdizimini çok daha kolay anlayacaksınız.

AutoHotkey'i Kurmak ve Kullanmak

AutoHotkey'in kurulum süreci basittir. Yükleyiciyi resmi web sitesinden indirin ve çalıştırın. "Ekspres Kurulum" u seçin. Yazılımı yükledikten sonra, herhangi bir yere sağ tıklayıp Yeni> AutoHotkey Komut Dosyası'nı seçerek yeni bir komut dosyası oluşturabilirsiniz.

AHK betikleri, .ahk uzantısı olan metin dosyalarıdır . Onlara sağ tıklarsanız, birkaç seçeneğiniz olur:

  • "Komut Dosyasını Çalıştır", komut dosyanızı AHK çalışma zamanıyla yükleyecektir.
  • "Compile Script", çalıştırabileceğiniz bir EXE dosyası oluşturmak için onu bir AHK yürütülebilir dosyasıyla paketleyecektir.
  • "Komut Dosyasını Düzenle" komut dosyanızı varsayılan metin düzenleyicinizde açacaktır. AHK komut dosyaları yazmak için Not Defteri'ni kullanabilirsiniz, ancak sözdizimi vurgulamayı ve hata ayıklamayı destekleyen AHK için bir düzenleyici olan SciTE4AutoHotkey'i kullanmanızı öneririz.

Bir komut dosyası çalışırken - bir EXE olsun ya da olmasın - sistem tepsisi olarak da bilinen Windows bildirim alanında arka planda çalıştığını göreceksiniz. Üzerinde "H" bulunan yeşil simgeyi bulun.

Bir komut dizisinden çıkmak, duraklatmak, yeniden yüklemek veya düzenlemek için, bildirim simgesine sağ tıklayın ve uygun bir seçeneği seçin. Komut dosyaları siz çıkana kadar arka planda çalışmaya devam edecektir. Tabii ki, Windows'tan çıkış yaptığınızda veya bilgisayarınızı yeniden başlattığınızda da kaybolacaklar.

AutoHotkey Nasıl Çalışır?

AHK özünde tek bir şey yapar - eylemleri kısayol tuşlarına bağlamak. Çok sayıda farklı eylem, kısayol tuşu kombinasyonu ve kontrol yapısı vardır, ancak tüm komut dosyaları aynı prensipte çalışacaktır. İşte Windows + C'ye her bastığınızda Google Chrome'u başlatan temel bir AHK komut dosyası:

#c :: Chrome dönüşünü çalıştır

İlk satır bir kısayol tuşunu tanımlar. Pound işareti (#) Windows tuşunun kısaltmasıdır c ve klavyedeki C tuşudur. Bundan sonra, bir eylem bloğunun başlangıcını belirtmek için çift iki nokta üst üste (: :) vardır.

Sonraki satır bir eylemdir. Bu durumda eylem, Run komutla bir uygulama başlatır . Blok, sonunda bir ile bitirilir return . Öğesinden önce istediğiniz sayıda eyleminiz olabilir return. Hepsi sırayla ateş edecek.

Aynen bunun gibi, basit bir eylem-anahtar eşlemesi tanımladınız. Bunlardan istediğiniz kadarını bir .ahk dosyaya yerleştirebilir ve arka planda çalışacak şekilde ayarlayabilir, her zaman yeniden eşlemek için kısayol tuşlarını arayabilirsiniz.

Kısayol Tuşları ve Değiştiriciler

Resmi belgelerde AHK değiştiricilerinin tam bir listesini bulabilirsiniz, ancak biz en kullanışlı (ve harika) özelliklere odaklanacağız.

Değiştirici tuşların tümü tek karakter kısayollarına sahiptir. Örneğin # ! ^ +sırasıyla Windows, Alt, Control ve Shift'dir. Ekstra kısayol tuşları için çok yer açan <ve >değiştiricilerle sol ve sağ Alt, Kontrol ve Shift arasında da ayrım yapabilirsiniz . Örneğin, + sağ Shift'tir. Başvurabileceğiniz her şey için anahtar listeye bir göz atın. (Spoiler: Hemen hemen her tuşa başvurabilirsiniz. Küçük bir uzantı ile klavye olmayan diğer giriş cihazlarına bile başvurabilirsiniz).

İstediğiniz kadar tuşu tek bir kısayol tuşunda birleştirebilirsiniz, ancak kısa süre sonra hatırlamanız gereken tuş kombinasyonları bitecek. Daha çılgın şeyler yapmanıza izin veren değiştiricilerin devreye girdiği yer burasıdır. AHK dokümanlarından bir örneği inceleyelim:

Yeşil #IfWinActivebir denir  yönerge ve komut altında fiziksel kısayol tuşları için ek bağlam uygular. Bundan sonraki herhangi bir kısayol tuşu yalnızca koşul doğruysa etkinleşir ve birden çok kısayolu tek bir yönerge altında gruplayabilirsiniz. Bu yönerge, başka bir yönergeye ulaşana kadar değişmeyecektir, ancak onu bir boşlukla sıfırlayabilirsiniz #If(ve bu bir hack gibi görünüyorsa, AHK'ya hoş geldiniz).

Buradaki yönerge, ile tanımlanan belirli bir pencerenin açık olup olmadığını kontrol etmektir ahk_class Notepad. AHK, "Win + C" girdisini aldığında, #IfWinActive yalnızca yönerge true döndüyse ilk eylemi başlatır ve sonra ikincisini kontrol etmediyse kontrol eder. AHK'nın pek çok direktifi vardır ve hepsini dokümanlarda bulabilirsiniz.

AutoHotkey ayrıca, tüm bir metin dizesini değiştirmek dışında kısayol tuşları gibi işlev gören kısayol dizelerine sahiptir. Bu, otomatik düzeltmenin çalışma şekline benzer - aslında AHK için bir otomatik düzeltme komut dosyası vardır - ancak herhangi bir AHK eylemini destekler.

Hotstring yalnızca tam olarak yazılırsa dizeyle eşleşir. Bu davranış ayarlanabilir olsa da, sıcak dizeyi değiştirmek için eşleşen metni otomatik olarak kaldıracaktır.

Hareketler

AHK'daki bir eylem, işletim sistemi üzerinde dış etkisi olan herhangi bir şeydir. AHK'nın birçok eylemi var. Bunların hepsini açıklayamayız, bu yüzden yararlı olanlardan bazılarını seçeceğiz.

  • Metin veya çeşitli tuşlara basıldığında girdi gönderme.
  • Fareyi hareket ettirmek. Aslında, AHK bazen yanlışlıkla video oyunları için hile yazılımı olarak işaretlenir, çünkü insanlar onunla tamamen çalışan hedef robotları yapmışlardır.
  • Mevcut pencereye göre konumlandırma ile farenin tıklanması.
  • Formlar ve giriş alanları ile tamamlanan iletişim menülerini görüntüleme.
  • Pencereleri hareket ettirme, boyutu ayarlama ve açma ve kapama.
  • Müzik çalmak.
  • Windows Kayıt Defterine Yazma. Evet gerçekten.
  • Panonun içeriğini değiştirme.
  • Dosyaları okuma ve yazma. Dosyalar arasında geçiş yapabilir ve her satırda eylemler gerçekleştirebilirsiniz. AHK .ahk dosyalara bile yazabilir ve kendi kodunu ayarlayabilir.

Bu eylemlerin çoğu, kendileriyle ilişkili bilgi odaklı komutlara da sahip olacaktır. Örneğin, panoya yazabilirsiniz, ancak Pano'nun içeriğini bir değişkende saklamak ve pano değiştiğinde işlevleri çalıştırmak için de alabilirsiniz.

Her Şeyi Kontrol Yapılarıyla Birleştirme

AHK, onu Turing-complete yapan tüm kontrol yapıları olmasaydı, olduğu gibi olmazdı.

#IfDirektiflere ek olarak, If eylem bloklarının içine de erişebilirsiniz . AHK For döngülere, küme parantez bloklarına Try ve Catchdeyimlere ve diğerlerine sahiptir. Dış verilere eylem bloğu içinden erişebilir ve daha sonra kullanmak üzere değişkenlerde veya nesnelerde saklayabilirsiniz. Özel işlevler ve etiketler tanımlayabilirsiniz. Gerçekten, başka bir programlama dilinde kolaylıkla yapabileceğiniz her şeyi AHK'da biraz baş ağrısıyla ve dokümanlara göz atarak yapabilirsiniz.

Örneğin, arka arkaya birden çok düğmeyi tıklamanızı ve bunu sonsuza kadar yapmadan önce bir sunucunun yanıt vermesini beklemenizi gerektiren sıkıcı, tekrarlayan bir göreviniz olduğunu hayal edin. Bunu otomatikleştirmek için AHK kullanabilirsiniz. Fareyi belirli konumlara taşımak için birkaç döngü tanımlamak, öğesini tıklayın ve ardından bir sonraki noktaya geçip tekrar tıklayın. Kırılmaması için birkaç bekleme ifadesi atın. Neler olduğunu belirlemek için ekrandaki piksellerin rengini okumayı bile deneyebilirsiniz.

Kesin olan bir şey var - senaryonuz muhtemelen güzel olmayacak. Ama AutoHotkey de değil ve sorun değil.