[font=arial,helvetica,sans-serif][b][u][color=#FF0000][size=6]Autoit İle Pencerelere Komut Gönderme[/size][/color][/u][/b][/font]
Forumda artan sorular neticesinde sade ve baştan bi anlatım hazırlamak istedim.Tabiki biraz autoit ve programlama
bilgisi lehinize olacaktır.Başlamadan önce kullanacağımız küçük program olan "Au3Info" yu öğrenmeniz
gerekiyor.Programa kod yazarken Tools->Au3Info yada Ctrl + F6 ile ulaşabilirsiniz.
[img]http://i.imgur.com/4w1JX.png[/img]
1-Pencerenin Başlığı
2-Pencerenin Sınıf Adresi
3-Ögenin Sınıfı
4-Ögenin Sırası
Fonksiyonları tanıtmadan önce neden Send, MouseClick gibi fonksiyonları değilde Control fonksiyonlarını kullandığımı
açıklamak istiyorum.Bu fonksiyonlarla yazacağınız kodlar kendi bilgisayarınızda belki çalışabilir, fakat diğer
bilgisayarlarda çalışma garantisi yoktur.O yüzden bu fonksiyonlar daha güzel ve verimlidir.Bu fonksiyonlarla beraber
katılımsız kurulum yapabilir (parametresi olmayanları), oyun pencerelerine veri yollatabilirsiniz.
[color=#0000ff][size=5]Fonksiyon Tanıtımı & Örnekler:[/size][/color]
[color=#b22222]ControlClick :[/color] Bu fonksiyonu tanıtmak için Ccleaner setupını kullandım.Ayrıca bu bizim detaylı tek fonksiyonumuz
olacak çünkü diğerleri zaten hep aynı mantık.Küçük örnekler yapacağız sadece (ControlCommand hariç).Bakalım;
http://www.youtube.com/watch?v=X2gYPw1itBg
Şimdi ordan edindiğimiz bilgilerle kodumuzu yazalım.
[code]ControlClick("CCleaner v3.21 Kurulumu", "", "Button2" )[/code]
bu kodu yazıp debug ettiğimizde (exe yapmadan kod üstünde çalıştırma diyelim F5 ile) pencere aktif olmasa bile butona
tıklandığını göreceksiniz.Şimdi burdaki parametreleri (fonksiyona atadığımız değerler) açıklayalım.İlk parametre
tahmin ettiğiniz gibi programın başlığı (au3info ile aldık ya onlar işte [img]http://www.tnctr.com//public/style_emoticons/default/smile.png[/img] ). Dİlerseniz Title ın altında bulunan
Class ile de yapabilirdik bunu hiç bir farkı yok.Kod şu şekilde olurdu;
[code]ControlClick("[CLASS:#32770]", "", "Button2" )[/code]
İkinci parametreye şu ana kadar hiç ihtiyacım olmadı sizinde olmayacak sadece tırnakları koyarak geçin.Şimdi asıl can
alıcı noktaya geliyoruz.Penceremizi bulduk e güzel ama nereye tıklayacağız?İşte bunu da 3. parametre ile
hallediyoruz.Açıklamak gerekirse Button yazan yer tıklayacağımız şeyin class bilgisi bu edit olabilir listview
olabilir zaten karıştırıp baktıkça çeşitli elemanlarla karşılacaksınız. 2 ile belirttiğimiz kısım ise buton ama hangi
buton? "Instance" kısmındaki yazan sayı değerini de buraya yazıyoruz ve kodumuz böyle bitiyor.
[color=#0000ff][u]İLERİ DÜZEY AUTOIT KULLANICILARI İÇİN AYRINTILAR[/u][/color]
Eğer autoit help dosyasını karıştırdıysanız (controlclick yazdıktan sonra F1 e basarsanız görebilirsiniz.)
ControlClick fonksiyonunun aslında daha fazla parametre aldığını görürsünüz.Burda şunu açıklamak
gerekir.Fonksiyonların bazı parametreleri siz değer vermeseniz dahi default (kendiliğinden) değerleri vardır.Peki bu
parametreleri de açıklamak gerekirse, buyrun;
[color=#ffa500]button ->[/color] hangi mouse butonuyla tıklanılacağını belirtir.Default olarak left gelir, bilmeniz gereken diğer
varyasyonları right ile middle dır.Deminki butona sağ tıklamak istersek kodumuzu şöyle düzenlememiz gerekir.
[code]ControlClick("[CLASS:#32770]", "", "Button2", "right" )[/code]
[color=#ffa500]clicks ->[/color] O butona kaç kere tıklanılacağını belirtir.Default olarak 1 gelir.Siz bi butona 2 kere tıklamak istiyorsanız
bu parametre işinize yarayacaktır.Biz bu durumda şayet 1 kere tıkladığımızda ekran değişeceği için pek bi işimize
yaramayacak ama yine de örnek olması için gösterelim.
[code]ControlClick("[CLASS:#32770]", "", "Button2", "right", 2 )[/code]
Geriye kalan parametreler butonunu hangi koordinatlarına tıklatmak için kullanılıyor.Açıkçası bu bizim için
gereksiz.Default olarak tam ortasına olduğunu söyleyelim ve geçelim.
--------------------------------------------------------------------------------------------------------------------------------------------------
[color=#b22222]ControlDisable & ControlEnable :[/color] Bu istediğini penceredeki bir nesneyi tıklanabilir yada tıklanamaz yapar.Disable
derseniz ögenin rengi gri olur ve tıklanamaz hale gelir, enable da tam tersi.
[code]ControlDisable("[CLASS:#32770]", "", "Button2")[/code]
[code]ControlEnable("[CLASS:#32770]", "", "Button2")[/code]
--------------------------------------------------------------------------------------------------------------------------------------------------
[color=#b22222]ControlFocus : [/color]İsteğiniz pencereye odaklanır, imleci bi yerden bi yere götürmek için kullanabilirsiniz.
[code]ControlFocus("[CLASS:#32770]", "", "Button2") ;butonu seçili hale getirir[/code]
--------------------------------------------------------------------------------------------------------------------------------------------------
[color=#b22222]ControlShow & ControlHide :[/color] İstediğiniz ögeyi gizleyebilir veya tekrar ortaya çıkartabilirsiniz.
[code]ControlHide("[CLASS:#32770]", "", "Button2") ;gizler[/code]
[code]ControlShow("[CLASS:#32770]", "", "Button2") ; tekrar gösterir[/code]
--------------------------------------------------------------------------------------------------------------------------------------------------
[color=#b22222]ControlSetText :[/color] Bu fonksiyonu serial yazdırmak için kullanabilirsiniz.Kullanışı yine çok basit artı olarak
göndereceğiniz metnide giriyorsunuz.
[code]ControlSetText ( "[CLASS:#32770]", "", "Edit1", "25458" ) [/code]
--------------------------------------------------------------------------------------------------------------------------------------------------
[color=#b22222]ControlSend :[/color] Online oyunlar için tuş bastırmak için kullanabileceğiniz bir fonksiyon.
[code]ControlSend ( "[CLASS:#32770]", "", "Edit1", "78" ) ; diğerinden farkı bu işlevi klavyeden yollanıyomuş gibi yapması ve direk pencereyede yollayabilmeniz. [/code]
[code]ControlSend ( "[CLASS:#32770]", "", "Edit1", "^+c" ) ; ctrl + shift + c gönder demektir.[/code]
[code]ControlSend ( "[CLASS:#32770]", "", "Edit1", "^+c", 1) ; ^+c gönder demektir.[/code]
Burda dikkat etmeniz gereken flag parametresidir.Parametre default olarak 0'dır eğer 1 yaparsanız bu sefer ctrl alt
shift gibi özel tuşları pencereye yollayamazsınız.Bazı özel tuşların kodlamalarını vermek gerekirse;
[code]CTRL -> ^
SHIFT -> +
ALT -> !
WIN TUŞU -> #[/code]
Geriye kalan fonksiyonlar pek önem taşımıyor fakat açıklamamı isterseniz açıklarım (ControlCommand'ı da yazcağım ama onda çevrilcek şey çok [img]http://www.tnctr.com//public/style_emoticons/default/smile.png[/img] ).Bu kaynağı hazırlarken zaten hali
hazırda bulunan help dosyası ve kendi birikimlerimden yararlandım.