# AutoHotkey
AutoHotkey, başlangıçta kolay klavye kısayolları veya kısayol tuşları, hızlı makro oluşturma ve bilgisayar becerisinin çoğu düzeyindeki kullanıcıların herhangi bir Windows uygulamasında tekrarlanan görevleri otomatikleştirmesine olanak tanıyan yazılım otomasyonu sağlamayı amaç edinmiş ve Microsoft Windows platformu için tasarlanmış ücretsiz ve açık kaynaklı bir özel betik dilidir. Kullanıcı arabirimleri, AutoHotkey tarafından kolayca genişletilebilir veya değiştirilebilir (örneğin, varsayılan Windows kontrol tuşu komutlarını Emacs eşdeğerleriyle geçersiz kılmak). AutoHotkey kurulumu, kendi kapsamlı yardım dosyasını içerir ve web tabanlı belgeler de mevcuttur.


## Özellikler.
AutoHotkey komut dosyaları programları başlatmak, belgeleri açmak ve tuş vuruşlarını veya fare tıklamalarını ve hareketlerini taklit etmek için kullanılabilir. AutoHotkey komut dosyalarına ayrıca değişkenleri atayabilir, alabilir ve değiştirebilir, döngüleri çalıştırabilir ve pencereleri, dosyaları ve klasörleri değiştirebilir. Bu komutlar bir kısayol tuşu ile tetiklenebilir, örneğin kullanıcı bir internet tarayıcısını klavyede her bastığında açan bir komut dosyası gibi. Klavye tuşları ayrıca yeniden eşlenebilir veya devre dışı bırakılabilir; Örneğin , etkin pencerenin uzun tire — veya hiçbir şey almamasına neden olabilir. AutoHotkey ayrıca, "btw" dizesini, yazıldığında "by the way"("bu arada") metnini oluşturmak için veya "%o" metnini "yüzdesi" üretmek için atamak gibi, yazıldığında belirli metni otomatik olarak değiştirecek "hotstrings"e de imkan sağlar. Ayrıca, bazı komut dosyaları bilgisayar başlangıcında otomatik olarak başlatılabilir ve klavyeyle hiç etkileşime girmesine gerek yoktur, belki de belirli bir aralıkta dosya düzenlemesi gerçekleştirir.
Özel veri giriş formlarıyla (GUI pencereleri), sistem kayıt defteriyle çalışarak veya DLL'lerden işlevleri çağırarak Windows API'sini kullanarak daha karmaşık görevler gerçekleştirilebilir. Komut dosyaları, AutoHotkey'in kurulu olmadığı diğer bilgisayarlarda çalıştırılabilen yürütülebilir bir dosyada derlenebilir. Kaynak kodu C++'dadır ve Visual Studio Express ile derlenebilir.
İşaretçiler (pointers) aracılığıyla bellek erişimine tıpkı C'de olduğu gibi izin verilir.
AutoHotkey'in kullanıldığı bazı alanlar:
  - QWERTY'den Dvorak'a veya diğer alternatif klavye düzenleri gibi klavyeyi yeniden eşleme.
  - Sık kullanılan dosya adlarını veya diğer ifadeleri doldurmak için kısayolları kullanma.
  - Eğri tırnaklar (“ ... ”) gibi klavyede yazım noktalama işaretleri sağlanmaz.
  - Fare imlecini klavye veya joystick ile kontrol etme.
  - Basit tuş vuruşlarıyla programları, belgeleri ve web sitelerini açma.
  - E-postaya, mesaj panolarına vb. imza ekleme.
  - Bir sistemi izleme ve istenmeyen programları otomatik olarak kapatma.
  - Otomatik hatırlatıcı, sistem taraması veya yedekleme zamanlama.
  - Tekrarlayan görevleri otomatikleştirme.
  - Formları otomatik olarak doldurma.
  - Daha fazla zaman alan başka bir programlama dilinde uygulamadan önce prototip oluşturma.


## Tarih.
AutoHotkey'in ilk genel beta sürümü, yazar Chris Mallett'in kısayol tuşu desteğini AutoIt v2'ye entegre etme önerisinin AutoIt topluluğundan yanıt alamamasından sonra, 10 Kasım 2003'te yayınlandı. Mallett, sözdizimini AutoIt v2'ye dayandırarak ve bazı komutlar ve derleyici için AutoIt v3'ü kullanarak sıfırdan yeni bir program oluşturdu. Daha sonra, AutoIt v3, "diğer projelerin tekrar tekrar AutoIt kodunu alması" ve "kendilerini rakip olarak kurması" nedeniyle GPL'den kapalı kaynağa geçti.
2010 yılında, AutoHotkey v1.1 (başlangıçta AutoHotkey_L olarak adlandırılır), AutoHotkey'in devam eden gelişimi için platform haline geldi. 2012 yılı sonlarında resmi şubesi olmuştur. Programın başka bir bağlantı noktası AutoHotkey.dll'dir.
Temmuz 2021'de ilk AutoHotkey v2 beta sürümü yayınlandı.


## Örnekler.
Aşağıdaki komut dosyası, kullanıcının Google'ı kullanarak belirli bir kelimeyi veya kelime öbeğini aramasına olanak tanır. Herhangi bir uygulamadan panoya metin kopyaladıktan sonra, yapılandırılabilir kısayol tuşuna basara k, kullanıcının varsayılan web tarayıcısını açar ve aramayı gerçekleştirir.
 - g::Run http://www.google.com/search?q=%clipboard%
Aşağıdaki komut dosyası, kullanıcının herhangi bir programda "afaik" yazmasını ve bunun otomatik olarak "as far as I know" ("bildiğim kadarıyla") ile değiştirilmesini sağlayan bir etkin dize tanımlar:
afaik::as far as I know


## Kullanıcıların eklediği özellikler.
Diğer programlama dilleriyle birlikte/diğer programlama dillerinden kullanılabilen uzantılar/birlikte çalışma/satır içi komut dosyası kitaplıkları vardır:
  - VB/C  (.NET)
  - Lua
  - Lisp
  - ECL
  - Embedded machine code
  - VBScript/JScript (Windows Scripting Host)
Diğer büyük eklentiler aşağıdakiler için destek sağlar:
  - Aspect-oriented programming
   - Function hooks
  - COM wrappers
  - Console interaction
  - Dynamic code generation
  - HIDs
  - Internet Explorer automation
  - GUI creation
  - Synthetic programming
  - Web services
  - Windows event hooks


## Malware.
AutoHotkey, dağıtım için bağımsız yazılım yapmak için kullanıldığında, bu yazılım, yorumlanmış bir dil olduğu için AutoHotkey komut dosyalarını anlayan ve yürüten AutoHotkey'in bir bölümünü içermelidir. Kaçınılmaz olarak, bazı kötü amaçlı yazılımlar AutoHotkey kullanılarak yazılmıştır. Kötü amaçlı yazılımdan koruma ürünleri, AutoHotkey kullanılarak programlanmış kötü amaçlı yazılım öğelerini ayırmaya çalıştığında, bazen hatalı bir şekilde asıl kötü amaçlı yazılım yerine AutoHotkey'i suçlu olarak tanımlarlar.