Jump to content

Archived

This topic is now archived and is closed to further replies.

sk8er_boi

İleri düzey AutoIT örnekleri

Recommended Posts

ben de gördüm gördüklerimiz aynı şey ise sanırım ams ile yapılmış.demiştim zaten isterse kurulum şeklinde bile olsun ama olsun.ams de olur yani.

Share this post


Link to post
Share on other sites

iyide morningcim bu öyle sadece bi resimle olmaz msne gel ben sana yapmaya çalışırım bunu :) Yapınca burada da paylaşırız gerekirse...

Share this post


Link to post
Share on other sites

Arkadaşlar aşağıda anlattığım konu için exe halinde çalışan güzel olduğunu düşündüğüm bir autoit scripti hazırladım.Driverlar arkaplandaki cmd ekranında yüklenirken kullanıcı bu gui ekranını görüyor.Autoit yardım makalelerinden derlediğim bu scripti sizlerle paylaşmak istedim.

Tek beceremediğim olay, Progressbarı ayarlayamamak oldu.Ayarlıyorum bu sefer script hatalara yol açıyor.yapabilen varsa paylaşsın ben de kullanırım :D:):)

http://www.tnctr.com/index.php?showtopic=70862[/CODE]

[CODE]#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('TrayIconHide', 1)

;----- example 3 PNG work araund by Zedna
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#Include <WinAPI.au3>

Global $hGUI, $hImage, $hGraphic, $hImage1

; Create GUI
$hGUI = GUICreate("FreshXP Sürücü Kurulumu", 256, 305)
GUICtrlCreateLabel("Sürücüler Aranıyor ve Yükleniyor...",50,260)
GUICtrlCreateLabel("Lütfen Bekleyin",75,275)
RunWait("hidcon.exe DP_Install_Tool.cmd")
; Load PNG image
_GDIPlus_StartUp()
$hImage = _GDIPlus_ImageLoadFromFile("Surucu.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState()

; Loop until user exits
do
until GUIGetMsg() = $GUI_EVENT_CLOSE

; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()

; Draw PNG image
Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc[/CODE]

gerekli yerleri kendinize göre düzenleyin.

Kullanabileceğiniz surucu.png dosyası:

Add%20Hardware.png

hidcon.exe (konsolu gizlemek için)

[CODE]http://cid-c5938e893f9ede9e.skydrive.live.com/self.aspx/%c3%96ylesine%20dosyalar/hidcon.exe[/CODE]

umarım işinize yarar

Share this post


Link to post
Share on other sites

Herkese iyi akşamlar.Bir soru sorucam.Şimdi çeşitli komutlar var winwaitactive falan.Bunları bekletirken milisaniye olarak bekletmiyoruz.Ben bunları en düşük 1 saniye bekletebiliyorum.Ama ben bunları 0,1 sn. bekletemem mi? Yani 1 saniye değilde 100 milisaniye bekletmek istiyorum.Bunun için ne yazmam lazım.0,1 sn. falan yazınca olmuyor.

Share this post


Link to post
Share on other sites

Tamamda ben sleep kullanmak istemiyorum.Ben mesela winwaitactiveyi 100 milisaniye bekletmek istiyorum.Ama o komutu bekletmek istiyorum.O yüzden komutun içinde kullanmak istiyorum.Altına sleep yazınca arasında fark oluyor.

Share this post


Link to post
Share on other sites

While Do Döngülerini Kullanıcam Fakat Mesela

2 Tuş Gödrecek

1.Tuşu Göndericek Sonra 2.tuşu Göndericek Sonra 1.tuşun Bir Daha Basma Süresini Belirliyicez Sonrada 2.tuşun Basma Süresi

Yani İstediğim Bu 2Tuş İçin ayrı Ayrı Bir Bekleme Zamanı İstiyorum :)

Share this post


Link to post
Share on other sites

döngünün sonunda bekleme ver 1. tuşla ikinci tuş arasında da verdiği beklemeyle istediğin bekleme arasındaki fark kadar bi bekleme daha ver

Share this post


Link to post
Share on other sites

TextRead("Autoit") :)

konuyla ne alakası var diye sormak durumundayım :D otoit diye okunuyor olması gerek.

Share this post


Link to post
Share on other sites

ARakdaşlar İsteğim Şu :

Bir Giriş Ekranını Olucak Bu Giriş Ekranıyla Bir foruma Bağlanıcak Ve Foruma Giriş Yapıcak Giriş Yapılırsa Gerçek Program Açılıcak

Bunu Yapabilirmiyiz :D

Share this post


Link to post
Share on other sites
ARakdaşlar İsteğim Şu :

Bir Giriş Ekranını Olucak Bu Giriş Ekranıyla Bir foruma Bağlanıcak Ve Foruma Giriş Yapıcak Giriş Yapılırsa Gerçek Program Açılıcak

Bunu Yapabilirmiyiz :wtf:

Giriş ekrarnını kolay bir şekilde Koda ile yapabiilrsin......

Site olayına gelirsek ise basit bir şekilde

ShellExecute("http://www.google.com.tr")
For $i = 0 To 10
	Sleep(250)
	$baslik = WinGetTitle("Google", "")
	if not $baslik = 0 then ExitLoop
Next

$AktiveYap = WinWaitActive($baslik,"",1) ; 1 Saniye aktive olmazsa boş ver 
If $AktiveYap = 1 Then
	MsgBox(64,"Tebrikler",$baslik &amp; "http://www.google.com.tr sitesine giriş yapıldı",5) ; Devam et
Else
	MsgBox(16,"Hata","http://www.google.com.tr sitesine giriş yapılamadı!",5)
EndIf
;~ Ve son tabi 

yapabilirsin. Scptithte gördüğün üzere ilk önce http://www.google.com.tr sitesini varsayılan browser ile çalıştırıp sitenin başlık yazısına ulaşmaya çalışıyoruz. Başlığa ulaşmadan zaman biterse olumsuz, başlığa ulaşır ise olumlu mesaj. Umarım anlamıştırsın...... Tabi daha farklık şekillerdede yapılabilir......

Share this post


Link to post
Share on other sites

Autoit ile katilimsiz yapatigimiz programlara sifre vermemiz mümkünmü

söyleki scripte cift tiklandiginda sifre isteyecek sifreyi dogru verdigimiz zaman katilimsiz programimiz kurulacak

yanlis sifre verildiginde kurulum baslamyiyacak

Share this post


Link to post
Share on other sites
Autoit ile katilimsiz yapatigimiz programlara sifre vermemiz mümkünmü

söyleki scripte cift tiklandiginda sifre isteyecek sifreyi dogru verdigimiz zaman katilimsiz programimiz kurulacak

yanlis sifre verildiginde kurulum baslamyiyacak

func kur()
	run("setup.exe")
	EndFunc

$a=InputBox("Doğrulama","Şifreyi Giriniz","","*")
if $a="şifrem" then 
kur()
else 
msgbox(0,"Hata","Şifre Yanlış, Kurulum İptal")
EndIf

Share this post


Link to post
Share on other sites
Giriş ekrarnını kolay bir şekilde Koda ile yapabiilrsin......

Site olayına gelirsek ise basit bir şekilde

ShellExecute("http://www.google.com.tr")
For $i = 0 To 10
	Sleep(250)
	$baslik = WinGetTitle("Google", "")
	if not $baslik = 0 then ExitLoop
Next

$AktiveYap = WinWaitActive($baslik,"",1) ; 1 Saniye aktive olmazsa boş ver 
If $AktiveYap = 1 Then
	MsgBox(64,"Tebrikler",$baslik &amp; "http://www.google.com.tr sitesine giriş yapıldı",5) ; Devam et
Else
	MsgBox(16,"Hata","http://www.google.com.tr sitesine giriş yapılamadı!",5)
EndIf
;~ Ve son tabi 

yapabilirsin. Scptithte gördüğün üzere ilk önce http://www.google.com.tr sitesini varsayılan browser ile çalıştırıp sitenin başlık yazısına ulaşmaya çalışıyoruz. Başlığa ulaşmadan zaman biterse olumsuz, başlığa ulaşır ise olumlu mesaj. Umarım anlamıştırsın...... Tabi daha farklık şekillerdede yapılabilir......

Hayır Arkadaşım Benim Dediğim Öyle değil

Programda Direk Login Olucak Hiçbirşey Açılmayacak :)

Arkadaşlar Bir Oyun İçin Açma Yapıyorum Fakat Bir Sorunum Var Kod İsteğim Bu :

oyunun bir yerine bakıp eğer öyleyse programı kapatmasını istiyorum :)

Share this post


Link to post
Share on other sites

Ya sk8er_boi hocam.Fileinstall klasörleride kopyalıyor demişsinizde ben denedim olmuyor.Flag'mı koyuyoruz acaba.Bir örnek verebilirmisiniz acaba ?

Share this post


Link to post
Share on other sites

öncelikle slmlar ardşlar

ben autoit dersindeki butun uygulamari takip ediyorum.yapıyorum

örneğin. msn

autoit programindan recordla kayderiyorum ve codlari aliyorum alt ve üst başlıklarini kaldırıyo ve kaydediyorum.bunu exeyede ceviyorum. cevirdiğim exe ye tıklaynca saatin yaninda birsrü exe cıkıyo ve kuruluma gecmiyo.acaba biyerde hatami yapıyorum.konulari araştirdim fakat bi çözüm bulamadim..

bir sorunda şu bunu yaptık diyelim cevirdğim exe programini normal setupla nasil bütünleyebilirm yani ben normal setupa tıklayinca katillimsiz olarak yüklemek istiyorum..

yardimci olrusanız sevinirm.şimdiden teşekkur ederim

Share this post


Link to post
Share on other sites
Hayır Arkadaşım Benim Dediğim Öyle değil

Programda Direk Login Olucak Hiçbirşey Açılmayacak :clapping:

Arkadaşlar Bir Oyun İçin Açma Yapıyorum Fakat Bir Sorunum Var Kod İsteğim Bu :

oyunun bir yerine bakıp eğer öyleyse programı kapatmasını istiyorum :unsure:

Ne yapmak istediğini fazla anlayamadım kusura bakma. Sayfa kontrolünde InetGet,InetGetSize gibi komutlarıda kullanabilirsin. Ayrıca ilk verdiğim örnekte explorer açılmadanda scprit içinde siteyi açabilir ve kontrol edebilrisin.

Bunuda GUICtrlCreateObj ile yapabilrisin. Yardım dosyasında gerekli açıklamalar mevcut.......

Ya sk8er_boi hocam.Fileinstall klasörleride kopyalıyor demişsinizde ben denedim olmuyor.Flag'mı koyuyoruz acaba.Bir örnek verebilirmisiniz acaba ?

FileInstall ile klasörleri scprite entegre edemezsin. FileInstallde flagların görevide kısaca dosya varsa üzerine yazımı yazmımı. Umarım anlamıştırsın. Tabi farklı şekillerde senin istediğinide yapabiliriz.

Mesela en basit olarak FileInstall ile şöyle yapılır. Bir örnek verim.

Dim $DataF = @ProgramFilesDir & "\Data"
Foldercopy()

exit
func Foldercopy()
if Not FileExists($DataF) then DirCreate($DataF)
FileInstall("Data\Dosya1.mp3", $DataF & "\Dosya1.mp3")
FileInstall("Data\Dosya2.mp3", $DataF & "\Dosya2.mp3")
FileInstall("Data\Dosya3.mp3", $DataF & "\Dosya3.mp3")
FileInstall("Data\Dosya4.mp3", $DataF & "\Dosya4.mp3")
EndFunc[/CODE]

Gördüğün üzere scprith dosyamın yanında Data klasörü ve içinde 4 tane dosya var. Ben bu dosyaları tek tek FileInstall ile belirtmek zorundayım. Bu scprithi hazırladıkatan sonra çalıştırısam @ProgramFilesDir & "\Data klasründe bu dosyalar oluşacaktır. Umarım anlamıştırsın.

Örneği iyi incelersen istediğini rahatlıkla yapabilrisin.......

öncelikle slmlar ardşlar

ben autoit dersindeki butun uygulamari takip ediyorum.yapıyorum

örneğin. msn

autoit programindan recordla kayderiyorum ve codlari aliyorum alt ve üst başlıklarini kaldırıyo ve kaydediyorum.bunu exeyede ceviyorum. cevirdiğim exe ye tıklaynca saatin yaninda birsrü exe cıkıyo ve kuruluma gecmiyo.acaba biyerde hatami yapıyorum.konulari araştirdim fakat bi çözüm bulamadim..

bir sorunda şu bunu yaptık diyelim cevirdğim exe programini normal setupla nasil bütünleyebilirm yani ben normal setupa tıklayinca katillimsiz olarak yüklemek istiyorum..

yardimci olrusanız sevinirm.şimdiden teşekkur ederim

Yaptığın scprithi foruma ekle nerde hata olduğunu söyleyelim... AU3Recorder de Fare kullanmamaya özen göster.

Son soruna gelirsek ise normal kuru FileInstall ile scripthin içine entegre edip Temp klasörüne çıkartıp çalıştırabilrsin. Işlem bittikten sonra ise temp klasörünü scprith ile temizleyebilrisin. Veya en basit olarak Winrar ilede Temp klasörüne çıkartıp istediğini yapabilirsin.......

Share this post


Link to post
Share on other sites

Harfi bilinmeyen CD/DVD romdaki bir programı çalıştırmak.......

$CD_DRV = DriveGetDrive("CDROM");Mevcut Cd/Dvd Sürücülerini arıyor...
If NOT @error Then
For $i = 1 to $CD_DRV[0]
$DRV_ST = DriveStatus($CD_DRV[$i] & "\Programs\");Mevcut sürücülerdeki Programs klasörünün durumuna bakıyor...
If $DRV_ST = "READY" Then
$BlProg = $CD_DRV[$i] & "\Programs\Program.exe"
If FileExists($BlProg) Then;Programs\Programs.exe nin olup olmadığını kontrol ediyor..
;~ MsgBox(64, "Bilgi", $BlProg & " uygulaması bulundu")
Run($BlProg); Programı çalıştır. Tabi istediğiniz gibi paremetre felan kullanabilirsiniz.
EndIf
EndIf
Next
EndIf[/CODE]

Gördüğünüz üzere PC deki tüm CD/DVD romları araştırıp sonra Rootta Programs klasörünü kontrol ediyor. Eğer klasörü varsa son olarak çalıştırmak istediğimiz programı kontrol edip çalıştırıyo.....

Eğer siz tüm sürücülerde bu dosyayı aratıp çalıştırmak iserseniz DriveGetDrive("ALL") şeklinde değiştirmelisiniz. Ayrıntılı bilgi için yardım dosyasındaki DriveGetDrive kısmını gözatınız......

Share this post


Link to post
Share on other sites

Hazırladığımız Scprthin birden fazla çalışmasını engellemek.

Global Const $GUI_EVENT_CLOSE = -3
Pr_Kontrol()
; Bu kısım ana işleviniz için ---------------------------------------------------
$Form1 = GUICreate("Script Kontrol....", 275, 120)
$Label1 = GUICtrlCreateLabel("Selam Millet Ben Blue_Life", 50, 10, 170, 76,0x01)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
$Button1 = GUICtrlCreateButton("Button1", 10, 80, 257, 33, 0)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
if $nMsg = $Button1 Or $nMsg = $GUI_EVENT_CLOSE then Exit
WEnd
;Ana işle ------------------------------------------------------------------------

Func Pr_Kontrol()
Local $I, $PR_Found = False

If @Compiled Then
Local $PROC_LIST = ProcessList(@ScriptName)
If IsArray($PROC_LIST) Then
For $I = 1 To $PROC_LIST[0][0]; Çalışan programlarda sırasıyla bak..
If StringUpper($PROC_LIST[$I][0]) = StringUpper(@ScriptName) And $PROC_LIST[$I][1] <> @AutoItPID Then;
$PR_Found = True; Program Bulundu
ExitLoop
EndIf
Next
If $PR_Found Then; Program Listesinde Program Bulunuduysa aşağıdaki komutları uygula.......
;~ MsgBox(0x40040, "Uyarı", @ScriptName & " Zaten Çalışıyor...")
Exit
EndIf
EndIf
EndIf
EndFunc[/CODE]

Gördüğünüz üzere eğer bizim scripth program listesinde varsa yeni açılan scprithi kapatmak üzere ayarladım. Siz şayet başka bir şeyde yaptırabilrisiniz. Mesela eskisini çalışmasına son verebilir yeni tıklanan scripthin çalışmasını sağlayabilirsiniz.

Bunun için en basit olarak exit kaldırılıp ProcessClose(@ScriptName) şeklinde de yapılabilir...

Share this post


Link to post
Share on other sites

Benim İstediğim Bu Arkadaşlar

Bir Forum Siteesi Var

Bu Sitenin Üyeleri Var

Ve Autoitte Bir LoginForm Var

Bu Login Form'daki Username Ve Password İle Forum Sitesine Giricek?

Share this post


Link to post
Share on other sites

arkadaşlar ben kurulum dosyası hazırladım yalnız benim scriptim program kurulumu bittikten sonrada çalışıyor bunu nasıl kapatabilirim..

bu programın özelliği bütün kurulum işlemi tek bir pencerede , pencere değişmeden tamamlanıyor. kurulum bitince pencere kapanıyor.

ama benim script çalışmaya devam ediyor

programın hangi aşamada sonlanacağını bilmediğim için, yani pencere değişmediği için kapat komutu yazamıyorum..

kurulum penceresi otomatik olarak kapandığında scriptimin nasıl kapatılmasını sağlayabilirim...

şöyle bir komut var mı?

xxxxxx penceresi aktif değilse yada yoksa scripti sonlandir kapat gibi bir komut var mı?

Share this post


Link to post
Share on other sites
arkadaşlar ben kurulum dosyası hazırladım yalnız benim scriptim program kurulumu bittikten sonrada çalışıyor bunu nasıl kapatabilirim..

bu programın özelliği bütün kurulum işlemi tek bir pencerede , pencere değişmeden tamamlanıyor. kurulum bitince pencere kapanıyor.

ama benim script çalışmaya devam ediyor

programın hangi aşamada sonlanacağını bilmediğim için, yani pencere değişmediği için kapat komutu yazamıyorum..

kurulum penceresi otomatik olarak kapandığında scriptimin nasıl kapatılmasını sağlayabilirim...

şöyle bir komut var mı?

xxxxxx penceresi aktif değilse yada yoksa scripti sonlandir kapat gibi bir komut var mı?

Büyük ihtimal hazırladığın scripth ile alakalı bir sorun var. Yoksa scripth görevini yaptıktan sonra sen exit yazmasan bile normalde kapanır.

Scripthi burda paylaşsaydın işte hatayı orda yapmışsın diyebilirdik.

Genelde Wait içeren komutlarda hata yapılıyor.

Mesela ben bir script hazırladam diyelim. Scripthimde

WinWaitActive("XXXX")

şeklinde bir komut var. XXX başlığı aktif olana kadar scripth beklemede kalacaktır.

Lakin ben şöyle yapsaydım;

WinWaitActive("XXXX","",5)

XXX başlığ 5 saniye içinde aktif olmazsa bir sonraki komuta geçecektir.

Yani lafın kısası Wait ile ilgili bir sorun var gibi.

Bu arada scriptin nerde takıldığını bulmak için bol bol MsgBox kullan....

Share this post


Link to post
Share on other sites
func kur()
	run("setup.exe")
	EndFunc

$a=InputBox("Doğrulama","Şifreyi Giriniz","","*")
if $a="şifrem" then 
kur()
else 
msgbox(0,"Hata","Şifre Yanlış, Kurulum İptal")
EndIf

Peki 2 tane sorum olacak.

1=Ben burada öyle düzeltmeler yapıcam ki;cancel dediğimde yada X'e bastığımda "hata şifre yanlış" demiyecek.Çıkış yapıcak.Sadece yanlış şifreyi girdiğimde hata diyecek.

2=Yanlış şifre girdiğimde "hata yanlış şifre" diyecek ama ondan sonra script kapanmayacak.Şifre yanlışsa ben buradan nasıl Inputbox ekranını tekrardan çağırıcam?

Share this post


Link to post
Share on other sites
Peki 2 tane sorum olacak.

1=Ben burada öyle düzeltmeler yapıcam ki;cancel dediğimde yada X'e bastığımda "hata şifre yanlış" demiyecek.Çıkış yapıcak.Sadece yanlış şifreyi girdiğimde hata diyecek.

2=Yanlış şifre girdiğimde "hata yanlış şifre" diyecek ama ondan sonra script kapanmayacak.Şifre yanlışsa ben buradan nasıl Inputbox ekranını tekrardan çağırıcam?

dim $a
Func kur()
	Run("setup.exe")
EndFunc   ;==&gt;kur



func sifresor()
$a = InputBox("Doğrulama", "Şifreyi Giriniz", "", "*")
if @error=1 then Exit
If $a = "şifrem" Then
	kur()
Else
	MsgBox(0, "Hata", "Şifre Yanlış")
	sifresor()
EndIf
EndFunc


sifresor()

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...