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

  • 2 hafta sonra ...
Script programımızı yeniden başlatma

Func _restart()
If @Compiled = 1 Then
Run( FileGetShortName(@ScriptFullPath))
Else
Run( FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath))
EndIf
Exit
EndFunc;==>_restart[/CODE]

[color=#2E8B57][b]Bu kodu scriptin altına kopyaladığımda yeniden başlatmıyor.Mesela run komutuyla çalıştırdığım dosyanın ismi nero.exe.

1=Bu ismi yukarıdaki kodların neresine yazmalıyım ki tekrar başlatsın.

2=10 kere scriptin yeniden başlatılmasını istiyorum.Bu rakamı nereye yazacağım ?[/b][/color]

Edited by crazy_pretty_murat
Link to comment
Share on other sites

  • Administrator
sk8er_boi abi klasör kopyalamanın bir yolu var mı ? sadece dosyaları tektek değil bütün halinde klasör kopyalamak istiyorum bi program yapacağım yapmam için klasör kopyalayabilmem lazım yardımcı olursan çok sevinirim

dircopy komutunu kullanman gerek.

Bu kodu scriptin altına kopyaladığımda yeniden başlatmıyor.Mesela run komutuyla çalıştırdığım dosyanın ismi nero.exe.

1=Bu ismi yukarıdaki kodların neresine yazmalıyım ki tekrar başlatsın.

2=10 kere scriptin yeniden başlatılmasını istiyorum.Bu rakamı nereye yazacağım ?

Bu bir fonksiyondur. Başlatmak istediğin yerde _restart() yazarak bu fonksiyonu çağırabilirsin.

10 kere saydırmak için değişken kullanamazsın çünkü program yeniden başladığı zaman değişkenler sıfırlacaktır.

Bunu registry ile halledebiliriz.

Func _restart()
     If @Compiled = 1 Then
          Run( FileGetShortName(@ScriptFullPath))
     Else
          Run( FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath))
     EndIf
     Exit
 EndFunc;==>_restart

while  regread("HKEY_CURRENT_USER\Software\sk8er_boi","sayi")<>10 
	regwrite("HKEY_CURRENT_USER\Software\sk8er_boi\","sayi","REG_SZ",regread("HKEY_CURRENT_USER\Software\sk8er_boi","sayi") +1)
	_restart()
	WEnd
		regwrite("HKEY_CURRENT_USER\Software\sk8er_boi\","sayi","REG_SZ",0)

Link to comment
Share on other sites

  • 2 hafta sonra ...
  • 3 hafta sonra ...
Geçenlerde cd hazırlarken skype yeni sürümünü eklemek istedim.Ekledim 1 hafta geçmeden üstüste iki yeni versiyonu çıktı.Dedim bunula uğraşılmaz :blink: .Autoit forumlarında gezerken crap cleaner için internetten indirip temizlik yapan bir script buldum,skype,live messenger için tekrar düzenledim.Dosyaları indirip otomatik kurulumlarını yapıyor.Bu halleriyle cd'ye ekledim.Derleyince 300-500 kb. birşey tuttular.Zaten scriptlerde programlarda mecburi internet bağlantısı istediği için bu sayede herzaman en son sürüm bilgisayara yüklenmiş oluyor.

Msn Live Messenger

Skype

Sayın F_s_M ustam. Yukarıdaki kodlar ile çok ihtiyaç duyulan bir olgu gerçekleşmiş olacak, Fakat zaten Yüklü olan bir programın güncellemesini yapmamakta sadece kurulu olmayan bir programı indirip kurmakta olduğunu gördüm. Kod eklemesi ile şöyle bir şekle döndürülebilir mi?

Ayrıca konu dışı bir sorum olacak. Autoit scripti yazarken *.zip veya *.rar dosyalarını açma komutu verip açıldığı yerden bir pro. nun çazlıştırılması mümkün mü? Teşekkürler.

Link to comment
Share on other sites

  • Administrator
bide fileinstall komutu gibi dirinstall(baktım yoktu adı değişiktir belki diye soruyorum) yokmu programın kendi içine almasını istiyorum klasörü sonra çalıştırınca istediğim yere klasörü koymasını istiyorum , teşekkürler

FileInstall Klasörleride kopyalıyor

dosya kopyalatırken kopyalama bittiği anda msj cıkmasını istiyorum nasıl yapabilirim

DirCopy(@AppDataDir & "\vesayre", "D:\yedek", 1)[/CODE]

DirCopy("e:\hellsing", "e:\hellsing1", 1)

msgbox(0,"k","Tamam")

Link to comment
Share on other sites

  • 4 hafta sonra ...

adminim ve arkadaşlar bir sorunum vardı.? ben bir proğram kurduruyorum sessiz kurulum(ekranda hiç birşey yok.) ben bir şekilde proğram kurulum sırasında reklam amaçlı veya bekleyiniz gibi uyarı amaçlı başından sonuna kadar bir resim aktarabilir miyim..? Nerox arkadaşımın x, y, kordiyatöründe baktımda mause'nin yanına yazı yazdırabiliniyor burdan yapabilirim dedim.

While 1 
ToolTip("örnek")

*Kurulumda kullandığım kodlar.*

WEnd[/CODE]

fakat burdaki gibi yapıyorum sadece örnek yazısı gözüküyor proğram kurulmuyor..?

sebebi ne olabilir..?

____________________________________________

teşekkürler..[/b]

Edited by akk33
Link to comment
Share on other sites

  • Administrator
adminim ve arkadaşlar bir sorunum vardı.? ben bir proğram kurduruyorum sessiz kurulum(ekranda hiç birşey yok.) ben bir şekilde proğram kurulum sırasında reklam amaçlı veya bekleyiniz gibi uyarı amaçlı başından sonuna kadar bir resim aktarabilir miyim..? Nerox arkadaşımın x, y, kordiyatöründe baktımda mause'nin yanına yazı yazdırabiliniyor burdan yapabilirim dedim.
While 1 
ToolTip("örnek")

*Kurulumda kullandığım kodlar.*

WEnd[/CODE]

fakat burdaki gibi yapıyorum sadece örnek yazısı gözüküyor proğram kurulmuyor..?

sebebi ne olabilir..?

____________________________________________

teşekkürler..[/b]

[CODE]func too()
ToolTip("NABER",300,300)
EndFunc
AdlibEnable("too",10)[/CODE]

too functionunu 10ms'de bir çalıştırır. Böylece senin programına mani olmaz.

Link to comment
Share on other sites

  • 3 hafta sonra ...

ne iş yapıyor derseniz..

size bir klasör oluşturmanızı isitiyor oluşturduğunuz klasöre masa üstünüzdeki x klasörünü kopyalıyor bittikten sonra sıkıştırıyor oda bittikten sonra kopyalana klasörü siliyor. Nasıl ama ilk denemem :)

#include <Array.au3>
#include <File.au3>
$value = InputBox("::.. Joy Bilgi İşlem Yedekleme  ..::", "KLASÖR ADINI GİRİNİZ:", "", " M12")

	  DirCreate($value)
_CopyWithProgress("C:\Documents and Settings\onder\Desktop\x", ($value), 1)

Func _CopyWithProgress($SourcePath, $DestPath, $Replace=0)
	If Not FileExists($SourcePath) Then Return SetError(1, 0, -1)
	If Not StringInStr(FileGetAttrib($DestPath), "D") And Not DirCreate($DestPath) Then Return SetError(2, 0, "")
	If $Replace <> 0 And $Replace <> 1 Then SetError(3, 0, "")

	Local $PathName = StringRegExpReplace($SourcePath, "^.*\\", "")
	Local $Progress=0, $Counter, $ReadySize, $MidlePath, $Ready, $TimeRemained
	Local $CurrentFilePath, $CurrentFileName, $CurrentFilePathName, $CurrentParentDirName

	ProgressOn("Yedekleme yapılıyor...", "Kopyalanan: " & $PathName, "....." & @LF & "Bekleyin...")

	Local $TotalDirSize = DirGetSize($SourcePath)
	Local $FilesArr = _FileListToArrayEx($SourcePath)
	Local $FilesCount = UBound($FilesArr)-1
	Local $ProgressStep = 100 / $FilesCount

	If IsArray($FilesArr) Then
		For $i = 1 To UBound($FilesArr)-1
			$CurrentFilePath = $FilesArr[$i]
			$CurrentFileName = StringRegExpReplace($CurrentFilePath, "^.*\\", "")
			$CurrentFilePathName = StringReplace($CurrentFilePath, $SourcePath & "\", "")

			$CurrentParentDirName = _GetParentDirName($CurrentFilePath)

			$Progress += $ProgressStep
			$Counter += 1

			$ReadySize = FileGetSize($CurrentFilePath)

			$MidlePath = _GetMidlePath($CurrentFilePath)
			$Ready = $Counter & "/" & $FilesCount
			$TimeRemained = _GetTimeRemained($TotalDirSize, $ReadySize, $FilesCount, $Counter)

			ProgressSet($Progress, 'KOPYALANAN HEDEF : "' & $CurrentParentDirName & '" KOPYALANAN KONUM "' & $CurrentParentDirName & '"' & @LF & _
				$MidlePath & @LF & "Yaklaşık kalan zaman: " & $TimeRemained, "Biten: " & $Ready)
			FileCopy($CurrentFilePath, $DestPath & "\" & $CurrentFilePathName, 8+$Replace)
		Next
	EndIf
	ProgressOff()
EndFunc

Func _FileListToArrayEx($sPath, $sMask='*')
	Local $i, $j, $blist, $rlist[1]=[0], $dlist = _DirListToArray($sPath)
	_ArrayAdd ($dlist, $sPath)
	For $i=1 To $dlist [0] +1
		$blist = _FileListToArray ($dlist [$i], $sMask, 1)
		If Not @error Then
			For $j=1 To $blist [0]
				_ArrayAdd ($rlist, $dlist[$i] & "\" & $blist [$j])
			Next
		EndIf
	Next
	$rlist [0] = UBound ($rlist) - 1
	Return $rlist
EndFunc

Func _DirListToArray($sPath)
    Local $rlist[2]=[1, $sPath], $blist, $alist=_FileListToArray ($sPath, '*', 2)
	If IsArray ($alist) Then
        For $i=1 To $alist [0]
            _ArrayAdd ($rlist, $sPath & "\" & $alist [$i])
			$blist = _DirListToArray ($sPath & "\" & $alist [$i])
            If $blist[0]>0 Then
                For $j=1 To $blist [0]
                    _ArrayAdd ($rlist, $blist [$j])
                Next
            EndIf
        Next
    EndIf
    $rlist[0] = UBound($rlist) - 1
    Return $rlist
EndFunc

Func _GetMidlePath($sPath)
	If StringLen($sPath) <= 50 Then Return $sPath
	Local $StartPath = StringLeft($sPath, 25)
	Local $EndPath = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -2)-1)
	Return $StartPath & "..." & $EndPath
EndFunc

Func _GetParentDirName($FullName)
	Local $LastSlashPos = StringInStr($FullName, "\", 0, -1)
	Local $SecondLastSlashPos = StringInStr($FullName, "\", 0, -2)
	Return StringMid($FullName, $SecondLastSlashPos+1, $LastSlashPos-$SecondLastSlashPos-1)
EndFunc

Func _GetTimeRemained($TotalSize, $CurrentSize, $FilesCount, $CurrentFilesCount)
	Local $NumLevl = 0.5

	If $TotalSize <= $CurrentSize Then Return _SecsToTime(0)

	Switch $FilesCount - $CurrentFilesCount
		Case 0 To 100
			$NumLevl = 0.1
		Case 100 To 1000
			$NumLevl = 0.5
		Case 1000 to 2000
			$NumLevl = 1
		Case Else
			$NumLevl = 2
	EndSwitch

	$Secs = ($TotalSize * $NumLevl) / (3600 * $CurrentFilesCount) - ($CurrentSize * $NumLevl) / (3600 * $CurrentFilesCount)
	Return _SecsToTime($Secs)
EndFunc

Func _SecsToTime($iTicks, $Delim=":")
	If Number($iTicks) >= 0 Then
		$iHours = Int($iTicks / 3600)
		$iTicks = Mod($iTicks, 3600)
		$iMins = Int($iTicks / 60)
		$iSecs = Round(Mod($iTicks, 60))
		If StringLen($iHours) = 1 Then $iHours = "0" & $iHours
		If StringLen($iMins) = 1 Then $iMins = "0" & $iMins
		If StringLen($iSecs) = 1 Then $iSecs = "0" & $iSecs
		Return $iHours & $Delim & $iMins & $Delim & $iSecs
	EndIf
	Return SetError(1, 0, 0)
EndFunc
$date = @MON & "/" & @MDAY & "/" & @YEAR
Run (@ProgramFilesDir & "\winrar\rar.exe a yedek ",($value) )
Sleep(1100)
MsgBox(64,"Tebrikler - JOY BİLGİ İŞLEM  ","Yedekleme işleminiz başarı ile tamamlanmıştır. Sıkıştırma işleminden önceki klasör silinecektir.")
Sleep(2000)
MsgBox(64,"AMAN DİKKAT - JOY BİLGİ İŞLEM  ","DİKKAT..! SIKIŞTIRMA İŞLEMİ BİTMEDİ İSE TAMAM BUTONUNA BASMAYINIZ..!!")
FileMove(($value), "yedek.rar", 1)
$folder = ($value)
Run(@ComSpec & " /c rmdir /S /Q " & $folder, "", @SW_HIDE)

Link to comment
Share on other sites

Değerli arkadaşlar bu autoit script kodlarını güselce detaylı bir anlatım yapıp kodların türkçesi felan sunabilirmisiniz.Hangi komut nerelerde ne işe yarar bunları öğrenmekte fayda var.

aslında anlatılacak bişi yok deneme yanılma yaparak çözebilirsin birinin bişiler anlatmasıyla değilde kendin verilen scriplerle daha kolay çözersin

Link to comment
Share on other sites

onder abi c:\doc..\desktop yerine şöyle yazabilirsin.

DirCreate($value)

_CopyWithProgress(@Desktopdir & "\x", ($value), 1)

hatta kopyalanacak klasörü de kullanıcıya sorabilirsin

$klonlabeni = InputBox("::.. Joy Bilgi İşlem Yedekleme ..::", "Kopyalanacak Klasör Adını Girin:", "")

_CopyWithProgress(@Desktopdir & "\" & $klonlabeni, ($value), 1)

geri kalanını incelemedim açıkçası uzun geldi :)

Link to comment
Share on other sites

  • 2 hafta sonra ...
  • 2 hafta sonra ...
İlgin için sağolda o scriptin içeriğini gösterir.Bana .exe içine gömdüğüm dosyalar lazım.

exe'yi çalıştır dosyaları nereye gönderdiysen oradan al

not: kurulumu bitirmemesi için script'i durdur

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...