Jump to content

İleri düzey AutoIT örnekleri


sk8er_boi
 Share

Recommended Posts

istediğini aşağıdaki kodlarla yapabilirsin. incele anlarsın.

$uyari = MsgBox(4, "Kuruluma Başlanıyor...", "Yüklemek istediğiniz program yüklenmek için hazır. Yüklemeye geçilsin mi?")

if $uyari = 6 then

_run()

EndIf

if $uyari = 7 then

Exit

EndIf

Func _run()

ShellExecuteWait("PROGRAM.exe", "PARAMETRE VARSA YAZ YOKSA SADECE TIRNAKLAR KALSIN", @ScriptDir)

EndFunc

Link to comment
Share on other sites

sağol teşekkürlerde evet hayır yazsın istemiyorum

sadece tamama basıcaklar bide programı ordan eklemek istiyorum program.exe onu başka yerden yazıcam benim istediğim script sadece kurulum başlıyor sonra tamama basıcaklar

yani ;

ınstalltips ile yaptığımız katılımsızlarda

mesela

0=benim istediğim script.exe

1=program.exe

gibi istiyorrum

Link to comment
Share on other sites

blackman 12 ve djonur anlamadınız beni ben ınstalltips ile katılımsız yapıcam

ınstalltips'e

0=script.exe

1=program.exe

yani scripte evet veya hayır yazsın istemiyorum sadece tamam tuşu olacak basıcaklar kurulam başlanıcak

yani ben birden fazla yazı yazmak istersem sizin verdiğiniz kodda yapamıcak onda program exe sini gösteriyosun benim istediğimde parametre program falan scriptten eklenmiycek ınsstal tips ten eklenicek

yani birden fazla ekleyebilmem için

mesela

0=giriş bilgi scripti 1.exe

1=program.exe

2=bitiş bilgi scripti 2.exe

3=site bilgi scripti 3.exe

veya böyle davam edebilir fazla koymak için

sadece scripte bilgi vericek ve tamama basıcaklar evet ve hayır olmayacak

Link to comment
Share on other sites

MsgBox(0, "Kuruluma Başlanıyor...", "Kuruluma başlanıyor.")[/CODE]

al o zaman bununla idare et.Ama son zamanlarda görüyorum ki katılımsızla uraşanlar boş şeylerle 1 mblık programı millete 4 mba indiriyorlar çok daha fonksiyonel yapabilirdiniz kurulumunuzu. Sadece bir uyarı vermek için 200 kb nedir. Ki siz 3 uyarı vermekten bahsediyorsunuz.

Link to comment
Share on other sites

Bu arada shmd nin sorusuna cevap vermiş blue_life ama bugun bir arkadaşıma lazım olan ve shmd'nin de sorununa benzeyen bir script verim

#include <File.au3>

_dosyayedekle("C:\Documents and Settings\BlackXP\Desktop\Yeni Klasör","*.txt",0,"C:\yedek\",0)
func _dosyayedekle($yol,$filtre = "*",$donus = 0,$kopyalama = "C:\yedek\",$ustuneyazma = 0,$silent = 1)
    if StringRight($yol,1) <> "\" Then $yol = $yol & "\"
    if FileExists($kopyalama) = 0 Then    DirCreate($kopyalama)
    if FileExists($yol) = 1 and StringInStr(FileGetAttrib($yol),"D") then
        $klasorler = _FileListToArray($yol,"*",2)
        if not @error Then
            for $i = 1 to $klasorler[0]
                _dosyayedekle($yol&"\"&$klasorler[$i],$filtre,$donus,$kopyalama&"\"&$klasorler[$i],$ustuneyazma,$silent)
            Next
        Else
            MsgBox(0,"Hata!","Alt klasör uygulamasında bilinmeyen bir hata!")
        EndIf
        $dosyalar = _FileListToArray($yol,$filtre,$donus)
        if not @error Then
            for $i = 1 to $dosyalar[0]
                if not StringInStr(FileGetAttrib($yol&"\"&$dosyalar[$i]),"D") Then
                    FileCopy($yol&"\"&$dosyalar[$i],$kopyalama&"\"&$dosyalar[$i],$ustuneyazma)
                EndIf
            Next
            if $silent = 0 Then
                MsgBox(0,"Tebrikler","Yedekleme işlemi başarıyla tamamlandı")
            EndIf
        Elseif @error = 1 Then
            MsgBox(0,"Hata!","Yol Bulunamadı.")
        Elseif @error = 2 Then
            MsgBox(0,"Hata'","Bilinmeyen filtreleme.")
        Elseif @error = 3 Then
            MsgBox(0,"Hata!","Bilinmeyen dosya dönüşü.")
        Elseif @error = 4 Then
        ;MsgBox(0,"Hata!","Kritelere uygun dosya bulunamadı.")
        EndIf
    EndIf
    _bosklasorsil($kopyalama)
EndFunc

func _bosklasorsil($ksil,$recluse=0)
    $klasorgetir = _FileListToArray($ksil,"*",2)
    if not @error Then
        for $a = 1 to $klasorgetir[0]
            _bosklasorsil($ksil&"\"&$klasorgetir[$a],$recluse)
        Next
    Elseif @error = 4 Then
        DirRemove($ksil,$recluse)
    EndIf
EndFunc[/CODE]

Kullanımı:

[CODE]_dosyayedekle("C:\Documents and Settings\BlackXP\Desktop\Yeni Klasör","*.txt",0,"C:\yedek\",0,1)[/CODE]

[CODE]Kopyalanacak kaynak: "C:\Documents and Settings\BlackXP\Desktop\Yeni Klasör"
Kopyalanacak Dosya Tipi: "*.txt"
Kopyalarken dosya/dizin seçimi yapma: 0,1,2
Kopyalanacak yer: "C:\yedek\"
Üstüne Yazma: 0,1
Uyarısız Kopyalama: 0,1[/CODE]

Link to comment
Share on other sites

O arkadaşa kalmış bişey, ben nasıl yapıldığını gösterdim. Ayrıca senin yazdığın kodlar da 800 KB ediyor. Şimdi sen bana ne demeğe çalışıyorsun?

arkadaşım kimse sana bir şey demeye çalışmıyor.

başarılı olmak istiyorsan her türlü eleştiriye açık olmalısın...

blackman abi sana bir şey demek istemedi...(bence)

Link to comment
Share on other sites

@Mükemmel yaran mı var hayırdır?! Benim lafım gangstereydi ve anlaman için cümlelerimi basitleştiriyorum:

"Sadece bir msgbox vermek için 200 kblık exe koyacağına, installtipsi düzenleyip başına msgbox koyarsan herhangi bir boyut artışı ve ekstra scripte gerek duymadan istediğini elde edersin."

Heh ille ben polemiğe girmek istiyorum dersen özel mesajınıda beklerim :D

Link to comment
Share on other sites

Benim paylaştığım exe dosyasının boyutu ile aynı yapılmış. Ben o yüzden bana dedin sandım. Kusura bakma, yanlış anlamışım. Sen meğer arkadaşa öneri yapıyorsun. Cümlelerin biraz devrik olduğundan kafam karışmış.

Zaten senin yazdıkların 800 kb ediyor. Yani o yüzden yanlış anladım.

Link to comment
Share on other sites

hocam benim bir sorum daha olacak ben flash belleğimdeki bir programı çağırmak istiyorum.fakat her pc de çalışması için flash belleğin adına göre bulmasını yani sürücü harfine göre değilde sürücü adına göre bulmasını istiyorum.çok uğraştım fakat bulamadım.kodları verip kısa bir anlatım yapabilirmisiniz.yani hangi kodu niçin kullandığınızı daha yeni olduğumuz için pek anlayamıyoruz.yardımlarınız için şimdiden teşekkürler.

saygılarımla.

Link to comment
Share on other sites

@shmd

Basit bir şey karaladım.

Kurcala...

Global $PROGRAM = "Program.exe"; Sürücüdeki programın ismi. Tabi bir alt klasördeyse klasörün adınıda yaz. Misal Klasör\program.exe
Global $FIND_DRV = _FIND_DRV_NAME("Sürücü Adını Yaz"); Sürücü isminden sürücüyü tespit eder.
If @error Or $FIND_DRV = "" Then; Sürücü bulunamaz ise
    MsgBox(64,"Hata!","Sürücü bulunamadı!")
Else; Sürücü bulunur ise;
    MsgBox(64,"Sürücü bulundu!",$FIND_DRV)
    If FileExists($FIND_DRV & $PROGRAM) Then
        MsgBox(64,"Program bulundu!",$FIND_DRV & $PROGRAM); Sürücüdeki program var ise
        Run($FIND_DRV & $PROGRAM)
    Else
        MsgBox(64,"Hata!","Program bulunamadı!"); Sürücüdeki program var ise
    EndIf
EndIf

Func _FIND_DRV_NAME($DRV_NAME); Sürücü isminden sürücüyü bulur
    Local $var = DriveGetDrive("All"); Tüm sürücülere bakar
;~     Local $var = DriveGetDrive("REMOVABLE"); Aktif yaparsan sadece removable sürücülere bakar. Tabi bir önceki satırı sil
    If NOT @error Then
        For $i = 1 to $var[0]
            If StringRight($var[$i],1) <> "\" Then $var[$i] &= "\"
            If DriveGetLabel($var[$i]) =  $DRV_NAME Then Return $var[$i]
        Next
    EndIf
    SetError(1)
    Return ""
EndFunc[/CODE]

Link to comment
Share on other sites

Dim $alfabe[25] = ["C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
$cdrom = ""
for $a in $alfabe
    if FileExists($a & ":\a.txt") = 1 Then
        $cdrom = $a & ":\"
    EndIf
Next
if $cdrom <> "" Then
    MsgBox(0,"Flash Bulundu",$cdrom)
    ShellExecute($cdrom)
EndIf[/CODE]

Flash belleğin ana dizininde a.txt nin bulunması yeterli.

edit: tabi bu a.txt bir örnektir sen orayı istediğin şekilde değiştirebilirsin.

Aslında başka bir yöntemle çok daha kolay ama saçma birşekilde aklıma bu geldi.Müsait bir zamanda daha koalyını yapıp vericem.

Link to comment
Share on other sites

@blue_life hocam

sizin verdiğini kod

Func _FIND_DRV_NAME($DRV_NAME); Sürücü isminden sürücüyü bulur

Local $var = DriveGetDrive("All"); Tüm sürücülere bakar

;~ Local $var = DriveGetDrive("REMOVABLE"); Aktif yaparsan sadece removable sürücülere bakar. Tabi bir önceki satırı sil

If NOT @error Then

For $i = 1 to $var[0]

If StringRight($var[$i],1) <> "\" Then $var[$i] &= "\"

If DriveGetLabel($var[$i]) = $DRV_NAME Then Return $var[$i]

Next

EndIf

SetError(1)

Return ""

EndFunc

burayı pek anlıyamadım.heralde burada sürcüyü buluyoruz değilmi?

fakat en sütteki kodda yani

Global $FIND_DRV = _FIND_DRV_NAME("Sürücü Adını Yaz")

bu sürücü adına göre sürücüyü buluyordu. altı kısımın işlevi nedir.biliyorum sizleride rahatsız ediyorum fakat dün geceden beridir verdiğiniz kodlarla ilgileniryorum.son kısmı bir türlü anlıyamadım. yardım ettiğiniz içinde çok teşekkür ederim.

@blackman12

; by Blackman12

Dim $alfabe[25] = ["C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]

$cdrom = ""

for $a in $alfabe

if FileExists($a & ":\_rohos\_dRk.exe") = 1 Then

$cdrom = $a & ":\"

EndIf

Next

if $cdrom <> "" Then

Run($cdrom & "\_rohos\_dRk.exe")

EndIf

WinWaitActive("Roho","Aa")

send("yaren{ENTER}")

hocam normalde ben @blue_life hocamın verdiği kodla bu programı çalıştırıp şifresini girdire biliyordum bunda niye olmadı kodlarda hata da yok.vereceğiniz diğer koduda bekliyor olacağım.bu mantığı anladım sağolun.

hocam bir sorumda ha olacak şimdi

ben ilk başta şu kodu kullandım olmadı

Run("$cdrom\_rohos\_dRk.exe")

sonra bu kodu kullandım oldu.

Run($cdrom & "\_rohos\_dRk.exe")

arasındaki fark nedir?

yardım ettiğiniz içinde çok teşekkür ederim.

saygılarımla

Edited by shmd
Link to comment
Share on other sites

@shmd

Func _FIND_DRV_NAME($DRV_NAME); Sürücü isminden sürücüyü bulur
    Local $var = DriveGetDrive("All"); Tüm sürücülere bakar
;~     Local $var = DriveGetDrive("REMOVABLE"); Aktif yaparsan sadece removable sürücülere bakar. Tabi bir önceki satırı sil
    If NOT @error Then
        For $i = 1 to $var[0]
            If StringRight($var[$i],1) <> "\" Then $var[$i] &= "\"
            If DriveGetLabel($var[$i]) =  $DRV_NAME Then Return $var[$i]
        Next
    EndIf
    SetError(1)
    Return ""
EndFunc[/CODE]

Yukarıdaki fonksiyon sürücü isminden sürücüyü tespit eder.

Şuanki haliyle tüm sürücülerin isimlerine bakıyor. Help dosyasındaki DriveGetDrive bölümüne bak.

Istersen bu satırı düzenleyerek sadece cd/dvd romlara veyahut sadece removable sürücülere baktırabilirsin.

Eğer belirlediğin isimde sürücü bulunamaz ise SetError ile hata olduğunu tanımlayabiliyoruz.

[CODE]Global $FIND_DRV = _FIND_DRV_NAME("Sürücü Adını Yaz")[/CODE]

Bu satırda fonksiyondaki (_FIND_DRV_NAME) işlemleri yaptırıyoruz.

O fonkisyondaki return ile değişkenimize ($FIND_DRV) gerekli bilgiyi aktarıyoruz.

Fonksiyondaki retrundan sonra alt satırlar işletilmez ve fonksiyondaki işlem sonlandırılır.

Umarım söylemek istediğini anlamıştırım ve ve anlatmak istediğimi anlamıştırsın...

Kolay gelsin.....

Link to comment
Share on other sites

Run($cdrom & "_rohos\_dRk.exe")[/CODE]

Kodun doğrusu bu çünkü $cdrom değişkeni örn: C:\ olarak dönüyor zaten.

Ayrıca ilk verdiğiniz Run("$cdrom\_rohos\_dRk.exe") ise çok yanlış bir kullanım. $cdrom bir değişkendir. ve değişkenleri tırnak içinde kullanırsanız fonskyinelliklerini kaybederler.

Link to comment
Share on other sites

Aşağıdaki konudaki klasör şifreleme uygulamasını kullanıyorum.

Kendimce burada yazdığım gibi düzenledim.(klasör-şifre)

Bunu autoit ile yapabilir misiniz?

Teşekkürler...

@ECHO OFF
title ******* Klasor Gizlemek/Sifrelemek *******
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST dvd goto MDLOCKER
:CONFIRM
echo Klasoru Sifre Ile Acilacak Sekilde Gizlemek Istiyormusunuz ? (Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren dvd "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Gizlenen Klasor Icin Sifreyi Giriniz...
set/p "pass=>"
if NOT %pass%== 112 goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" dvd
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md dvd
echo dvd created successfully
goto End
:End[/CODE]

Link to comment
Share on other sites

Aşağıdaki konudaki klasör şifreleme uygulamasını kullanıyorum.

Kendimce burada yazdığım gibi düzenledim.(klasör-şifre)

Bunu autoit ile yapabilir misiniz?

Teşekkürler...

@ECHO OFF
title ******* Klasor Gizlemek/Sifrelemek *******
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST dvd goto MDLOCKER
:CONFIRM
echo Klasoru Sifre Ile Acilacak Sekilde Gizlemek Istiyormusunuz ? (Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren dvd "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Gizlenen Klasor Icin Sifreyi Giriniz...
set/p "pass=>"
if NOT %pass%== 112 goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" dvd
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md dvd
echo dvd created successfully
goto End
:End[/CODE]

neccooy abi ; sizin üste kullandığınız kod ismi diyelim ki şifre.bat aşağıdaki kodları scite yapıştırıp compile edince oluyor...

[CODE]#include <File.au3>

Dim $TempBatchFile = _TempFile(@TempDir,"",".bat")
Dim $HideConsole = False

FileInstall("Şifre.bat",$TempBatchFile)

If $HideConsole Then
    RunWait($TempBatchFile,@TempDir,@SW_HIDE)
Else
    RunWait($TempBatchFile,@TempDir)
EndIf

FileDelete($TempBatchFile)[/CODE]

Edited by ASEV13
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...