If Abfragen Abarbeitung

  • Wie schon oben im Tiel, wann werden IF-Abragen abarbeitet, konnte im Tutorial und Hilfe nichts finden.

    Werden sie nach der Reihe oder während dem ganzen anderen Abläufen abarbeitet??

    • Offizieller Beitrag

    Gibt´s deine Frage auch in deutsch ?

    Normalerweise werden If Abfragen der Reihe nach ausgeführt .

  • Die if abfragen: if = wenn sie werden nur ausgeführt wenn dieser Fall denn du mit If erstellt hast eintritt

    zb.

    [autoit]

    If $GUI_EVENT_CLOSE Then Exit

    [/autoit]

    Also wenn man beendet ($GUI_EVENT_CLOSE) nur dann wird Exit ausgeführt also beendet

  • Aha Okay,

    Also wenn ich quasi in irgend einer Form das Script pausiere zb mit (RunWait,WinWait,Sleep), werden dan trotzdem die If-Abfragen abarbeitet, oder nachdem der Wait oder Sleep Befehle beendet ist??

  • Nachdem Sleep Befehle beendet ist.

    Es wird von oben nach unten abgearbeitet.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Genauso ne Antwort habe ich gebraucht :rofl:, nur leider stoße ich dabei auf eine großen Bug.

    [autoit]

    ShellExecuteWait($Installer)

    [/autoit][autoit][/autoit][autoit]

    If ProcessExists($pid) Then
    ProcessClose($pid)
    EndIf

    [/autoit]

    Eigentlich sollte die If-Abfrage nachdem ShellExecuteWait abarbeitet werde, aber nach mehreren Test, manchmal während und manchamal danach, vllt liegt es auch daran das der Prozess nur ganz kurz exestiert??

    [autoit]

    ShellExecute($Installer)

    [/autoit][autoit][/autoit][autoit]

    If ProcessExists($pid) Then
    ProcessClose($pid)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    ProcessWaitClose($Installer)

    [/autoit]

    So müsste es aussehen, wenn die If-Abfrage während ShellExecute ausgeführt werden soll, oder??

  • Hie das ganze Script:

    [autoit]

    ; Name des Installers
    $Installer = "isobuster_all_lang.exe"
    ; Verzeichnis des Installers
    $Source = @ScriptDir & "\"
    ; Installationsordner für 32Bit-Systeme (Windows 2000, XP und Vista (32-Bit))
    $InstallDirX86 = @ProgramFilesDir & "\Utilities & Tools\IsoBuster"
    ; Installationsordner für 64Bit-Systeme (XP und Vista (64-Bit))
    $InstallDirX64 = @HomeDrive & "\Programme (x86)\Utilities & Tools\IsoBuster"
    ; Registrierungseinträgen hinzufügen ("Automatisch auf neue Version prüfen" deaktivieren)
    $AddRegistryEntries = 1
    ; Verknüpfungen erstellen (1=Startmenü, 2=Startmenü + Desktop)
    $Shortcuts = 1
    ; Löschen von unnötigen Dateien (1=Multilanguagefiles, 2=Multilanguagefiles + Onlinefiles 3=Multilanguagefiles + Onlinefiles + Helpfile)
    $DeleteUselessFiles = 3

    [/autoit][autoit][/autoit][autoit]

    ; Emailadresse
    $EMail = ""
    ; RegistrierungsID
    $ID = ""
    ; Schlüssel
    $Key = ""

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    If @OSArch = "X86" Then
    $InstallDir = $InstallDirX86
    ElseIf @OSArch = "X64" Then
    $InstallDir = $InstallDirX64
    EndIf

    [/autoit][autoit][/autoit][autoit]

    If FileExists($Source & $Installer) Then
    ShellExecuteWait($Source & $Installer,"/SILENT /NOCANCEL /DIR=" & '"' & $InstallDir & '"')

    [/autoit][autoit][/autoit][autoit]

    If ProcessExists("IsoBuster_toolbar.exe") Then
    ProcessClose("IsoBuster_toolbar.exe")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    If StringLen($ID) = 16 Then
    WinWait("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO")
    ControlSetText("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO", "", "TEdit1",$EMail)
    ControlSetText("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO", "", "TEdit3",$ID)
    ControlSetText("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO", "", "TEdit2",$Key)
    Sleep(2000)
    ControlClick("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO","Registrieren >>","TButton5")
    WinWaitClose("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO")
    ProcessClose("IsoBuster.exe")
    Else
    WinWait("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO")
    WinClose("Die Registrierung ermöglicht die Funktionen von IsoBuster PRO")
    ProcessClose("IsoBuster.exe")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    If $AddRegistryEntries = 1 Then
    RegWrite("HKCU\Software\Smart Projects\IsoBuster","VersionCheckCriteria","REG_DWORD",0)
    RegWrite("HKCU\Software\Smart Projects\IsoBuster","VersionCheckPromptBeforeGoingOnline","REG_DWORD",0)
    RegWrite("HKCU\Software\Smart Projects\IsoBuster","VersionCheckPromptIfNewerVersionExists","REG_DWORD",0)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Switch $Shortcuts
    Case 2
    FileCreateShortcut($InstallDir & "\IsoBuster.exe",@DesktopCommonDir & "\IsoBuster.lnk")
    ContinueCase
    Case 1
    DirCreate(@ProgramsCommonDir & "\Utilities & Tools\IsoBuster")
    FileCreateShortcut($InstallDir & "\IsoBuster.exe",@ProgramsCommonDir & "\Utilities & Tools\IsoBuster\IsoBuster.lnk")
    ContinueCase
    Case 0
    DirRemove(@ProgramsCommonDir & "\Smart Projects",1)
    FileDelete(@AppDataDir & "\Microsoft\Internet Explorer\Quick Launch\IsoBuster.lnk")
    EndSwitch

    [/autoit][autoit][/autoit][autoit]

    Switch $DeleteUselessFiles
    Case 3
    DirRemove($InstallDir & "\Help",1)
    ContinueCase
    Case 2
    DirRemove($InstallDir & "\Online",1)
    ContinueCase
    Case 1
    FileDelete($InstallDir & "\Lang\Afrikaans.dll")
    FileDelete($InstallDir & "\Lang\Albanian.dll")
    FileDelete($InstallDir & "\Lang\Arabic.dll")
    FileDelete($InstallDir & "\Lang\Brasil.dll")
    FileDelete($InstallDir & "\Lang\Bulgarian.dll")
    FileDelete($InstallDir & "\Lang\Catalan.dll")
    FileDelete($InstallDir & "\Lang\Cesky.dll")
    FileDelete($InstallDir & "\Lang\Chinese_Simp.dll")
    FileDelete($InstallDir & "\Lang\Chinese_Trad.dll")
    FileDelete($InstallDir & "\Lang\Dansk.dll")
    FileDelete($InstallDir & "\Lang\Espanol.dll")
    FileDelete($InstallDir & "\Lang\Farsi.dll")
    FileDelete($InstallDir & "\Lang\Francais.dll")
    FileDelete($InstallDir & "\Lang\Greek.dll")
    FileDelete($InstallDir & "\Lang\Hrvatski_Croatian.dll")
    FileDelete($InstallDir & "\Lang\Italiano.dll")
    FileDelete($InstallDir & "\Lang\Macedonian.dll")
    FileDelete($InstallDir & "\Lang\Magyar.dll")
    FileDelete($InstallDir & "\Lang\Nederlands.dll")
    FileDelete($InstallDir & "\Lang\Norwegian.dll")
    FileDelete($InstallDir & "\Lang\Polski.dll")
    FileDelete($InstallDir & "\Lang\Portugues.dll")
    FileDelete($InstallDir & "\Lang\Romana.dll")
    FileDelete($InstallDir & "\Lang\Russian.dll")
    FileDelete($InstallDir & "\Lang\Suomi_Finnish.dll")
    FileDelete($InstallDir & "\Lang\Svenska.dll")
    FileDelete($InstallDir & "\Lang\Thai.dll")
    FileDelete($InstallDir & "\Lang\Turkish.dll")
    FileDelete($InstallDir & "\Lang\Ukranian.dll")
    EndSwitch
    EndIf

    [/autoit]
  • @freakisch

    Was sollte ich in meinem hier geschriebenen letzten Beitrag sonst schreiben?
    Ich bin einfach davon ausgegangen, das Du dieses nicht wußtest und wie auch meine Nachfolger schreiben, gibt es da ja auch Fragen bezüglich des Verständnisse.

    Edit1: Jetzt wo Du das Script drinne hast, kann man mal weiter schauen und ...

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Diese Zeile:

    [autoit]

    ShellExecuteWait($Source & $Installer,"/SILENT /NOCANCEL /DIR=" & '"' & $InstallDir & '"')

    [/autoit]


    sieht für mich etwas komisch aus, weil da nach dem Anführungszeichen (vor /SILENT) kein Leerzeichen steht.
    Mach doch mal in Zeile 32 eine MsgBox und schaue nach, ob die Installation bis dahin funktioniert.

  • muss man nicht alles in einer zeile mit " oder ' beginnen lassen

    Oscar ich glaube da gehören alle lerzeichen im Pfad weg!

  • Also das mit dem Leerzeichen wird nur bei Run benötigt, da ShellExecute das schon selbständig erledigt!

    Das Script funktioniert ja soweit, aber es geht ja um die If-Abfragen speziel die in Zeile 33, die offenbar anders zu behandeln ist, da sie manchmal funktioniert dan wieder nicht!

    Einmal editiert, zuletzt von freakisch (13. April 2009 um 16:05)