Jump to content
Son zamanlarda artan kullanıcı hesap hırsızlıkları sebebiyle tüm kullanıcılara şifre sıfırlama maili gönderilmiştir. Lütfen güveli şifreler seçiniz. Mevcut e-mail adresinize erişemiyorsanız, en aşağıdaki destek linkinden bize ulaşınız. ×

İleri düzey AutoIT örnekleri


sk8er_boi
 Share

Recommended Posts

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

Edited by morning
Link to comment
Share on other sites

  • 2 hafta sonra ...

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.

Edited by guven_memo
Link to comment
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 :)

Edited by fatih_sensiz
Link to comment
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

Please register to see this content.
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......

Link to comment
Share on other sites

  • Administrator
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

Link to comment
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

Please register to see this content.
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 :)

Edited by fatih_sensiz
Link to comment
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

Link to comment
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.......

Link to comment
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......

  • Like 2
Link to comment
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...

  • Like 1
Link to comment
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ı?

Edited by trspeed
Link to comment
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....

Link to comment
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?

Link to comment
Share on other sites

  • Administrator
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()

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...