mustafavanli Posted December 2, 2012 Share Posted December 2, 2012 Merhaba Tnctr ailesi bir süredir forumun programlama bölümünü takip ediyorum(misafir olarak) ve acemi olarak auto-it programlama yapmaya çalışıyorum. Sözü fazla uzatmadan sorunumu anlatmak istiyorum.(Konuma başlık bulmakta biraz zorlandım.Başlık saçma ise mazur görülmesini rica ediyorum. ) Bir programımda aktif bulunan pencerenin kullanıcı tarafından kapatıldığı yada simge durumuna indirildiği durumda kodların belirli bir yere geri dönüp baştan başlamasını istiyorum ben biraz denedim ama beceremedim. Run("notepad.exe") WinWait("Adsız - Not Defteri") WinActivate("Adsız - Not Defteri") WinWaitActive("Adsız - Not Defteri") Sleep(100) Send("a") ;harflerin yazılması esnasında program aşa inerse not defteri kapatılıp baştan açılacak ve ilk send komutundan baştan başlayacak ama bir türlü çıkamadım işin içinden Sleep(2000) Send("a") Sleep(2000) Send("a") Sleep(2000) Send("a") Sleep(2000) Send("a") While 1 ; bunu buraya koyduğumda bitmesini bekliyo en başa koyduğumda program açılmıyor, arala konduğunda ise döngüyü durduruyor WinWaitNotActive("Adsız - Not Defteri") ProcessClose("notepad.exe") Sleep(100) Exit WEnd Quote Link to comment Share on other sites More sharing options...
mesale0077 Posted December 2, 2012 Share Posted December 2, 2012 autoit te help dosyasından ve udf dosyasını inceleyelim ProcessExists ve _IsPressed konularla bu işi çözebilirsiniz Quote Link to comment Share on other sites More sharing options...
mustafavanli Posted December 2, 2012 Author Share Posted December 2, 2012 (edited) Teşekkür ederim inceleyeceğim. Düzenleme: Run("notepad.exe"); WinWait("Adsız - Not Defteri"); WinActivate("Adsız - Not Defteri"); WinWaitActive("Adsız - Not Defteri"); Sleep(100); Send("a"); Sleep(2000); Send("a"); Sleep(2000); Send("a"); Sleep(2000); Send("a"); Sleep(2000);aaaa Send("a"); $a = 0 While 1 ; Bu döngünün send komutunu etkilemeden fakat sürekli aşağıdaki işlemi yapmasını nasıl sağlayabilirim ? if Not ProcessExists("notepad.exe") then; MsgBox(0,"hata",""); Exit; EndIf; WinWait("Adsız - Not Defteri"); WinActivate("Adsız - Not Defteri"); WinWaitActive("Adsız - Not Defteri"); WinSetState("Adsız - Not Defteri","",@SW_RESTORE ) ; if Not ProcessExists("notepad.exe") then; MsgBox(0,"hata1",""); Exit; EndIf; if $a >= 5 and WinWaitNotActive("Adsız - Not Defteri") Then; MsgBox(0,"hata2",$a); EndIf; $a = $a +1; WEnd; Sorunumu yukarıdaki gibi halletmeye çalıştım , daha iyi çözüm bilen üstadlardan yardım istiyorum, ayrıca belirttiğim gibi "while-wend döngüsünün send komutunu etkilemeden fakat sürekli döngüdeki işlemi işlemi yapmasını nasıl sağlayabilirim ?" İlgilenen herkese sonsuz teşekkürlerimi sunarım. Edited December 2, 2012 by mustafavanli Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.