djonur007 Posted May 24, 2010 Share Posted May 24, 2010 @By_Microp #NoTrayIcon FileCopy("LOGON.exe", @WindowsDir & "\",9) ShellExecuteWait("regedit.exe", "/s setup.reg", @ScriptDir) ShellExecuteWait("regedit.exe", "/s restore.reg", @ScriptDir) Quote Link to comment Share on other sites More sharing options...
casira Posted June 14, 2010 Share Posted June 14, 2010 Arkadaşlar birkaç sorum olacak yanıtlarsanız memnun olurum. Soru1- Katılımsız hazırlarken bazı programlarda etkinleştirme ile alakalı ilk olarak apenceresi çıkıyor, ardından bpenceresi geliyor buraları hallediyorum.Fakat diyelimki o sırada kullanıcı kurulumu sonlandırdı veya ne bileyim elektrik gitti tekrar çalıştırdı programı; fakat bu apenceresi gelmiyorda direk bpenceresi geliyor bu durumu doğal olarak kestiremediğim için kurulum çalışmıyor yani apenceresini bekliyor.Benim istediğim mantık olarak şu; eğer apenceresi gelmezse bu durumu es geç ve bpenceresini işte WinWait,WinActivate et ve scriptin geri kalan kısmı devam etsin. Soru2- Bazen katılımsızlarda istenmeyen pencere çıkabiliyor birkaç denememde örneğin xpde çıkmazken aynı proyu win7de deniyorum ama o sırada işte ne bileyim Application Close (messenger,avafind çalışıyor bunlar kapatılmalı diyor kurulumun devam etmesi için); veya win 7 64 bitte deniyorum aynı proyu bu sefer Script ShellExcute(ProgramFilesDir) satırına gelince Çevrimiçi Çözümlere Bak,Program Çalıştır gibi seçenek çıkıyor ben bu durumda kullanıcının hangi işletim sistemi kullandığını bilemediğim için tıkanıyorum.İstediğim şey böyle bir pencere WinWaitte adı mesela cpenceresi olsun, bu cpenceresi gelirse script tipik ControlClik Button3 veya neyse buna tıklayıp devam etsin istiyorum.Ama cpenceresi gelmezse script bu controlclicke tıklamadan ardındaki satırdaki işleme devam etsin istiyorum. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 14, 2010 Share Posted June 14, 2010 Cevap 1 If WinGetState("apenceresi") <> 0 Then ;~ pencere bulununca ne yapılacaksa Else ;~ eğer bir şey olup da pencere çıkmazsa devam etmek için EndIf[/CODE] 2. sorununda cevabı aynı şekilde olabilir.Aynı mantıkla çözebilirsin.. Quote Link to comment Share on other sites More sharing options...
blackman12 Posted June 14, 2010 Share Posted June 14, 2010 1- if winexists("apenceresi") then ;apenceresi gelince yapılacaklar endif ;burası normal şekilde devam etmeli else ye gerek yok[/CODE] 2- yine yukardaki mantıkla halledebilirsin ama ben snagitte mesela adlibenable ile halletmiştim (tabi şimdi adı adlibregister olmuş) [CODE]Func pencereyebak() if WinExists("Microsoft Word") then WinActivate("Microsoft Word") Send("BULDUM!") AdlibUnregister() EndIf EndFunc[/CODE] Ayrıca sorun sadece işletim sistemi farklılıysa @OSVersion ile işletim sistemini alıp ona göre harekette ettirebilirsin. Quote Link to comment Share on other sites More sharing options...
casira Posted June 14, 2010 Share Posted June 14, 2010 (edited) talha sanki birileri birşey sorsunda bende hızır gibi yetişeyim diyorsun Allah razı olsun.Senin cevabından sonra biraz işim çıktı ancak yeni denedim. If WinGetState("Yeni Metin Belgesi - Not Defteri") <> 0 Then MsgBox(0, "Not Defteri", "Pencere Bulundu.") Else TrayTip("Not Defteri Penceresi Bulunamadı", "... www.tnctr.com TEKRAR DENEYİN ...", 15, 1) Sleep(5000) EndIf Yukardaki kodlar boş scriptte denedim gayet başarılı oldu. Yeni Metin Belgesi - Not Defteri adlı pencere açıkken mesaj verdi;açık olmayıncada traytipdeki belirttiğim mesajı verdi. Çok teşekkür ederim. Blackman12 senin cevabını yeni gördüm şimdi denedim gerçekten tek kelimeyle MUHTEŞEM.Allah razı olsun. Edited June 14, 2010 by recep demirci Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 14, 2010 Share Posted June 14, 2010 Ne yalan söyliyim can sıkıntısından patlıyorum birisi yardım istediği zamanda anında cvp vermeye çalışıyorum Quote Link to comment Share on other sites More sharing options...
casira Posted June 15, 2010 Share Posted June 15, 2010 Birkaç sorum daha olacak. ShellExecute(@ProgramFilesDir & "\abcprogramı\abc.exe") komutunu kullanıyorum bununla tools-go veya f5 tuşuana basıp win 7 64 bitte deneme yapınca C:\ProgramFiles\abcprogramı\abc.exe Windows tarafında bulunamadı iletisi karşıma çıkıyor.ProgramFiles değilde programın kurulacağı sistem 64 bit ise bunu ProgramFiles(86) olması içine ne yapılabilir.Scripti compile edip exe yapıp deneme yapıyorum yine aynı ileti karşıma çıkıyor. Birde bu durum FileCopy dosya kopyalama scriptinde nasıl olur FileCopy(@ScriptDir & "\abc.exe",@ProgramFilesDir & \abcprogramı", 9) yani burada sistem 64 bit ise ProgramFiles(86) yoluna nasıl kopyalarız gerçi bunu winrarla hallediyorum.Yardımlarınız için teşekkür ederim. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 15, 2010 Share Posted June 15, 2010 Bildiğim kadarıyla @ProgramFilesDir X64 lerde de o yolu vermesi lazım (ProgramFiles(86)) fakat vermiyorsa aşağıdaki gibi bi yol deneyebilirsin.Aynı şey FileCopy içinde geçerli.. $type=@OSArch If $type = "X86" Then ShellExecute(@ProgramFilesDir & "\abcprogramı\abc.exe") Else ShellExecute(@HomeDrive& "\ProgramFiles(86)\abcprogramı\abc.exe") EndIf[/CODE] Quote Link to comment Share on other sites More sharing options...
mrecep38 Posted June 22, 2010 Share Posted June 22, 2010 FileMove("C:\Program Files\NetSupport\NetSupport School\NSM.LIC", "C:\Program Files\NetSupport\NetSupport School\NSM.LIC.old", 1) FileMove("C:\Program Files\NetSupport\NetSupport School\PCICL32.DLL", "C:\Program Files\NetSupport\NetSupport School\PCICL32.DLL.old", 1) FileMove("C:\Program Files\NetSupport\NetSupport School\PCICTL.DLL", "C:\Program Files\NetSupport\NetSupport School\PCICTL.DLL.old", 1) FileMove("C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE", "C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE.old", 1) Yukarıdaki satırlarda sorun yok, çalışıyor. Ancak _BL_SYS_Filecopy("$NetSupport School TR YAMA\PCIVIDEO.EXE", "C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE") Satırı çalışmıyor. Nerede yanlış yapıyorum? Quote Link to comment Share on other sites More sharing options...
blackman12 Posted June 22, 2010 Share Posted June 22, 2010 _BL_SYS_Filecopy fonksiyonunu bilmek gerek. Quote Link to comment Share on other sites More sharing options...
mrecep38 Posted June 22, 2010 Share Posted June 22, 2010 (edited) Üstad bu kopyalama işlemini FileInstall komutuyla da yaptıramadım, yardım eder misiniz? FileInstall("C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE", $NetSupport School TR YAMA & "\PCIVIDEO.EXE") yazdım olmadı Edited June 22, 2010 by mrecep38 Quote Link to comment Share on other sites More sharing options...
blackman12 Posted June 22, 2010 Share Posted June 22, 2010 filemove ile tam yolları girerek dener misin bi. Quote Link to comment Share on other sites More sharing options...
mrecep38 Posted June 22, 2010 Share Posted June 22, 2010 (edited) FileMove("C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE", $NetSupport School TR YAMA & "\PCIVIDEO.EXE") Yine olmadı FileCopy("$NetSupport School TR YAMA\PCIVIDEO.EXE", "C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE") Böyle de olmuyor Edited June 22, 2010 by mrecep38 Quote Link to comment Share on other sites More sharing options...
blackman12 Posted June 22, 2010 Share Posted June 22, 2010 FileMove("C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE", "şuyolutamyazsana\PCIVIDEO.EXE",1) Quote Link to comment Share on other sites More sharing options...
mrecep38 Posted June 22, 2010 Share Posted June 22, 2010 (edited) Üstad; FileMove("C:\Documents and Settings\Administrator\Desktop\NetSupport School TR YAMA\PCIVIDEO.EXE", "C:\Program Files\NetSupport\NetSupport School\PCIVIDEO.EXE") Yazınca oluyor ancak: 1-("C:\Documents and Settings\Administrator\Desktop\NetSupport School TR YAMA içindeki PCIVIDEO.EXE yi siliyor. 2-Kurulumu her X:\ yoluyla nasıl yaptıracağım? Edited June 22, 2010 by mrecep38 Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 22, 2010 Share Posted June 22, 2010 FileCopy(@DesktopDir & "\NetSupport School TR YAMA\PCIVIDEO.EXE", @ProgramFilesDir & "\NetSupport\NetSupport School\PCIVIDEO.EXE")[/CODE] Bu komutla istediğin dosyayı kopyalayabilirsin ama senin istediğin FileInstall ile almaksa şöyle yapacaksın; [CODE]FileInstall"(C:\Documents and Settings\Administrator\Desktop\NetSupport School TR YAMA\PCIVIDEO.EXE", @ProgramFilesDir & "\NetSupport\NetSupport School\PCIVIDEO.EXE")[/CODE] Böyle yaparsan dosyan exe nin içine gömülmüş olur ve çalıştığından Program Files'teki Net Support klasörüne istediğin exe atılır.Ve son bir öneri Program Files klasörü için @ProgramFilesDir, masaüstü için @DesktopDir Kullan Quote Link to comment Share on other sites More sharing options...
blackman12 Posted June 22, 2010 Share Posted June 22, 2010 Çünkü FileMove komutu Kesme komutudur. FileCopy ise kopyalar. C:\ProgramFiles yerine @ProgramFilesDir masaüstü yolu yerine @DesktopDir kullan.Aynı talhanın dediği gibi. Quote Link to comment Share on other sites More sharing options...
mrecep38 Posted June 22, 2010 Share Posted June 22, 2010 (edited) Aşağıdaki kodu, yukarıdaki resme göre nasıl düzenleyeceğim? #include <GUIConstantsEx.au3> $input=InputBox("istedigin baslık","istedigin cumle","Buraya inputun ilk hali") $deneme=$input boyle yaparsan $deneme yazdıgın her yerde inputtaki karakteri kullanır... Edited June 22, 2010 by blackman12 Quote Link to comment Share on other sites More sharing options...
casira Posted June 22, 2010 Share Posted June 22, 2010 (edited) Mouse Click ile alabilirsin. Opt("MouseCoordMode",0) Global $Title = "Pencere Başlığı" WinWait($Title,"") If Not WinActive($Title,"") Then WinActivate($Title,"") WinWaitActive($Title,"") MouseClick("left", 400, 300, 2) Send("{CTRLDOWN}c{CTRLUP}") WinActivate("pencere adı") Send("^v") Buradaki 400,300 koordinatlarını kendin ayarlamalısın.Yani Pencere Başlığı adlı bir pencerenin x=400, y=300 koordinatlarına mouse ile çift tıklatıp Ctrl+C yaptırdık.Ve oradaki yazıyı hafızaya aldık Birde komutlar arasında başka işlem varsa onuda eklemelisin. Eğer Mouse Click işe yaramaz ise mutlaka Mouse Click Drag denemelisin. Edited June 22, 2010 by recep demirci Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 22, 2010 Share Posted June 22, 2010 (edited) Öyle yaparsan sağlam olmaz. ControlSetText[/CODE] ile tek tek inputlara yazdırırsan dağa sağlam olur..Ama tam teşkilatlı örnek yapabilmem için pencerenin au3info programındaki bilgileri lazım.. Edit: Yanlış görmüşüm Ordaki yazıları ise ControlGetText ile alabilirsin Edited June 22, 2010 by talha_252 Quote Link to comment Share on other sites More sharing options...
mrecep38 Posted June 22, 2010 Share Posted June 22, 2010 Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 22, 2010 Share Posted June 22, 2010 $okuyucu=ControlGetText("NetSupport School Ürün Aktifleştirme", "", "[CLASS:Static; INSTANCE:9]")[/CODE] E artık yazdırma işini de sen yaparsın artık olmazsa exeyi ver bana da bari ben yapayım Quote Link to comment Share on other sites More sharing options...
blackman12 Posted June 22, 2010 Share Posted June 22, 2010 $deger = ControlGetText("NetSupport School Ürün Aktifleştirme","","Static9") Quote Link to comment Share on other sites More sharing options...
mrecep38 Posted June 22, 2010 Share Posted June 22, 2010 $okuyucu=ControlGetText("NetSupport School Ürün Aktifleştirme", "", "[CLASS:Static; INSTANCE:9]") yada $deger = ControlGetText("NetSupport School Ürün Aktifleştirme","","Static9") Her ikisini de denedim, yine olmadı. Hata aşağıdaki resimde görülüyor: Quote Link to comment Share on other sites More sharing options...
blackman12 Posted June 22, 2010 Share Posted June 22, 2010 şu kodu tam verde yardımcı olalım.mesela $deger = ControlGetText("NetSupport School Ürün Aktifleştirme","","Static9") msgbox(0,"ad",$deger) şeklinde bi dene bakalım mesajboxta $deger değişkeni ne olarak dönücek.Ayrıca aktivasyon kodunu da yanlış doldurtuyorsun mesela: $aktivasyon = Controlgettext("NetSupport School Keymaker","","AktivasyonKodYazanBölüm") $4lu = stringsplit($aktivasyon,"-") for $i = 1 to $4lu[0] controlsettext("NetSupport School Ürün Aktifleştirme","","input"&$i,$4lu[$i]) next 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.