MostWanted Posted September 19, 2012 Share Posted September 19, 2012 (edited) [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. Edited September 19, 2012 by MostWanted Link to comment Share on other sites More sharing options...
Recommended Posts