Autoit pencere komutları nasıl kullanılır

Bu bölümde Autoit Script Editor kullanarak pencerelere  inceleyeceğiz. bir pencereyi nasıl küçültebiliriz,virgül ya da bir pencereyi ön plana getirme arka plan getirmeye  ,pencereyi gizleme pencereyi boyutlandırma ile alakalı örnekler yapacağız. bu pencere komutlarını diğer komutlar ile birlikte kullanıp bizi gereksiz tıklamalar dan kurtaracak küçük programlar yazacağız. 
 burada asıl amaçladığım nokta size komutların tek başına kullanım şeklini göstermek değil  Aksine komutların birbirleriyle nasıl kullanıldığını göstermektir. Örneğin bizim çalışacağımız pencere her defasında farklı bir yerde açılıyorsa ve pencerenin koordinatlarının sürekli değişmesi bizim için bir problemse bu pencereyi sabit bir.da tutmak gereklidir. ya da pencerenin hep ön planda olmasını istiyorsak ya da pencere biz ya da kullandığımız pencere Bir nedenden oturuyor ötürü arka planı geçmişse ?şte biz bu durumda penceremizin durumu hakkında bilgi almak için yine bu kodları kullanacağız. ya da bir pencerenin kapatıldığı anda programımız çalışmaya kaldığını kaldığı yerden devam etmesi için yine bu Komutları kullanacağız.
 

Autoit winexits() winclose() kullanımı

 

if winexist("Hata,"") then   ; hata baslıklı pencere varsa

winclose("[ACTIVE]") ; pencereyi kapat ."[ACTIVE]" ile "Hata" baslıklı penceremizi işaret ettik. 

endif

 

 

Autoit ile yaptığımız programları çalıştırırken sıklıkla başınıza gelecek hatalardan biri de MouseClick komutunun bazen Nadiren de olsa gösterdiğimiz koordinata tıklamıyor oluşudur. yaptığım programlarda bazen  Mouse un tıklama dığını farkettim ve bir alt satırda Mouse tıklamadığı için Program hata veriyor. bunun önüne geçmek için yaptığımız tıklamalar dan sonra istediğimiz pencerenin aktif olup olmadığını bu "winexits() "komutuyla kontrol etmek durumundayız yoksa biz programımızı pencerenin kapatılmasına yönelik yazdığımız için,pencere kapama dığında programımız hata verecektir.
 

Autoit Aktif olan pencerenin ismini öğrenme ve işlem yapma

 

while 1

if StringInStr(  WinGetTitle("[ACTIVE]","")  ,  "tube" ) then
  Send ("^w") ; sekmeyi kapatma tuşları crtl w gönderir
EndIf
sleep(500)
WEnd

Örneğin Chrome sekmelerimizin arasında YouTube sayfası varsa biz bu YouTube sayfasına geçiş yaptığımızda programımız if  komutuyla belirttiğimiz koşulu yerine getirecektir. Yukarıdaki örnekte  YouTube sayfası aktif olursa program kendini sonlandırılacaktır. burada 2 komutu iç içe kullanmış olduk wingettittle ile aktif olan pencerenin başlığına öğrendikten sonra String in string komutu ile de başlığımız içeriğinde YouTube kelimesinin bir kısmı olan çok kelimesinin varlığını kontrol ettirdik ve eğer koşul yerine gelirse gelmişse programımızın sekmeyi kapatmasını istedik.

StringInStr ( " kelime topluluğu ", "kelime" )

WinGetTitle("[ACTIVE]","") kısmı stringinStr komutunun ilk parametresidir. "kelime topluluğu" yerine kullanılmıştır.

"tube" kısmı ise ikinci parametredir.  ilk paramatre içerisinde "tube" kelimesini arar. 

Önemli not: parametrelerde $değişken kullanacaksak tırnak " işareti kullanmayız 

$cumle = "YouTube sayfası aktif olursa program kendini sonlandırılacaktır."

$kelime="aktif"

if stringinstr (  $cumle , $kelime ) then   ;doğru kullanım

comsolewrite ("cümle içerisinde aradığınız kelime var.")

endif

 

if stringinstr (  $cumle , "$kelime ") then   ;yanlış kullanım

if stringinstr (  $cumle , "tube ") then   ;doğru kullanım

 

 

Autoit winmove() pencere kaydırma, pencere taşıma

 

WinMove ( "title", "text", x, y [, width [, height [, speed]]] )

 

Autoit ile pencere kaydırma ya da pencere taşıma işlemlerini bu komutla gerçekleştiriyoruz. her zamanki gibi işlem yapacağımız penceremizin ismini Title ile belirttikten sonra kısmını Text boş bırakarak X ve Y koordinatları ile pencereyi taşıyacağımız yeri belirtiyoruz. burada eğer taşıdıktan sonra yeniden boyutlandırmak istiyorsak pencerenin eni ve boyu değerlerini de girebiliriz Ama bunlar optional yani girmesek de olur. Bunun yanı sıra pencereyi taşıma hızlı da optional olarak isteğimize bırakılmıştır. sonuç olarak window komutunu kullanırken pencere başlığı w x y koordinatlarını yemek girmek zorundayız. Aksi halde kullandığımız komut parametre hatası verecektir.

Önemli not : Komutların parametrelerindeki [ köşeli parantez içerisindeki parametreler opsiyaneldir. isteğe bağlı olarak kullanılır. 

WinMove( "AutoIt Help","",0,0,500,800)
WinActivate("AutoIt Help","")
winsettitle("[active]","","yardım")

bu örnekte "Autoit help" isimli penceremizi Ekranın sol üst köşesine taşırken 500 ve 800 ebatlarında yeniden boyutlandırıldı. Winactivate() komutu ile penceremizi en öne getirdik ve daha sonra winsettitle() komutuyla aktif olan yani Autoit help penceremizin ismini "yardım "olarak değiştirdik. burada bir pencerenin başlığının nasıl değiştirildiğini de görmüş olduk. winsettitle() komutunu Çok karmaşık ve uzun olan pencere başlıklarını sadeleştirmek için kullanabilirsiniz

 

Autoit winsetstate() Pencereyi gizleme, Pencereyi büyütme , Pencereyi küçültme ,Pencereyi simge durumuna küçültme, etkinleştirme ve devre dışı bırakma

 

Bir pencereyi gösterir, gizler, simge durumuna küçültür, maksimize eder veya geri yükler.

                       Flag (Son parametre )                  


     @SW_HIDE = Pencereyi gizle
     @SW_SHOW = Daha önce gizli bir pencereyi gösterir
     @SW_MINIMIZE = Pencereyi simge durumuna küçült
     @SW_MAXIMIZE = Pencereyi büyüt
     @SW_RESTORE = Bir pencere küçültme veya maksimizasyonu geri alır
     @SW_DISABLE = Pencereyi devre dışı bırakır
     @SW_ENABLE = Pencereyi etkinleştirir

 

WinSetState ( "title", "text", flag )

Autoit kullanarak bir Pencereye dair gizleme gösterme büyütme küçültme pencereyi aktif ya da pasif hale getirme veya pencere Simge durumunda küçültmek için WinsetState komutunu kullanıyoruz. yukarıda Bu komutun Flag isimli son parametresinin içeriği verilmiştir. State kelimesi status kelimesinden gelir ve anlamı durum demektir. bu komutu kullanarak da mevcut penceremizi yukarıda belirttiğimiz durumlara taşıyabiliyoruz.
 

$a=WinGetTitle("[ACTIVE]","")
WinSetState ($a,"",@SW_HIDE )

SLEEP(1000)

winsetstate ($a,"",@SW_SHOW )

SLEEP(1000)

winsetstate ($a,"",@SW_MAXIMIZE )

SLEEP(1000)

winsetstate ($a,"",@SW_RESTORE )
Exit

Yukarıdaki kodu çalıştıralm ve ne olup bittiğini izleyelim. 

Autoit WinSetOnTop() pencereyi üstte tutma, pencereyi en önde tutma

WinSetOnTop ( "title", "text", flag )

$a=WinGetTitle("[ACTIVE]","")

WinSetOnTop($a,"",1)  ; pencereyi en önde olacak şekilde kilitler

WinSetOnTop($a,"",0) ; kilidi kaldırır

Bir pencerenin sürekli aktif olarak en önde kalmasın istiyorsak bu komutu kullanıyoruz. 0 ve 1 şeklinde iki tane parametre miz var.
 

Kategoriler: 

Etiketler: 

3 Comments

autoit pencereler

Autoit ile ilgili güzel bir çalışma olmuş teşekkürler....

WingeTitle ve winexist komutları

WingetTitle ile aktif olan pencerenin başlığını alıyoruz, peki benim tarayıcımda da sekmeler açıktı, winget komutu neden autoiti editörü aktif pencere kabul edip, onun üstünde büyültme küçültme işlemi yaptı? tarayıcıdaki sekmede aktif değil miydi? iki pencerede yanyana duruyodu.Ve pencere başlığını bize nasıl döndürecek WingetTitle,bi stringin içinde saklıyo,biz nasıl öğreneceğiz o başlığı? o başlığı öğrendikten sonrada,başlığı winexist komutuna verip ,böyle bi sayfa varsa büyült küçült gibi bi işlem yapabilirmiyim?

sımdı sunu soyleyelım.. önce

sımdı sunu soyleyelım.. önce pencere baslıgını yani title'ı autoit window info ile ögrenebiliriz yada yukarıdaki wingettitle active komutuyla da ogrenebılırız. program calıstırıldıgında autoit penceresının başlıgını almıstır. su yüzden cünkü programı f5 ile baslattıgınız anda aktif olan pencere ztn autoittir.. bu yüzden programı baslattıktan sonra biraz bekletmek lazım.. mesela

$title=""

sleep(3000)  ; 3 sn bekler. biz o sırada baslıgını ögrenmek istedigimiz pencereyi aktif (öne alırız) ederiz

$title=WinGetTitle("[ACTIVE]","") ; aktif olan pencerenin başlığı $a değişkeni içerisine yazılır / atanır

consolewrite($a &@CRLF) ; bu komutla da baslık editor konsoluna yazılır.

siz buyuk ıhtımalle programın ilk satırına sleep komutu koymadınız. ayrıca önemli nokta şudur. baslıgını almak ıstedıgımz pencere bagımsız calısmalıdır. mesela chromeda 5 tane sekme acık ve biz ücüncü sekmeye dair islem yapmak istiyorsak o sekmeyı dıgerlerınden ayırmak gerekır. altta 2 ayrı chrome gorunmelıdır. 

$a degıskenı aktif pencerenin ismi olduguna göre

if stringinstr($a,"Tube") then  ; aktif pencere title icerisidne tube kelimesi varsa 

if $a = "YouTube" then ; aktif pencere başlığı YouTube ise

bu ıkı komuttan bırını kullanarak da islem yaptırabılırız

 

if stringinstr($a,"Tube") then

mouseclick

winclose  active

gibi..

endif

 

 

2. sorunun cevabı olrak evt baslıgını aldıgınz pencereye dıledıgınız ıslemı (pencere komutlarından istediginizi) yaptırabılırsınız

örnegin youtube tekbasına sekmesiz calısıyor olsun. ve biz bununla ılgılı ıslem yapmak ıstıyoruz

if WinExists (  "You","" ) then 

winflash("You","")

endif

 

baska bir örnek

if WinExists("You","") then

local $a=WinGetTitle("You","")
ConsoleWrite($a)
WinActivate("You","")

endif

 

 

Sayfalar

Yeni yorum ekle

Filtered HTML

  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satır ve paragraflar otomatik olarak bölünür.

Plain text

  • Hiç bir HTML etiketine izin verilmez
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Satır ve paragraflar otomatik olarak bölünür.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Resimli CAPTCHA
Resimde görünen karakterleri girin.