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??
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??
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.
Genauso ne Antwort habe ich gebraucht
, nur leider stoße ich dabei auf eine großen Bug.
ShellExecuteWait($Installer)
[/autoit][autoit][/autoit][autoit]If ProcessExists($pid) Then
ProcessClose($pid)
EndIf
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
ProcessWaitClose($Installer)
[/autoit]So müsste es aussehen, wenn die If-Abfrage während ShellExecute ausgeführt werden soll, oder??
Mit diesem Codeschnipsel kann niemand etwas anfangen. Poste doch bitte ein funktionsfähiges Beispiel.
Hi!
Woher hast du die PID?
Windows vergibt bei jedem Ausführen eine neue/andere. Mit Run statt ShellExecute bekommst du sie als Rückgabewert.
Auch ansonsten ist mir dein Code äußerst schleierhaft...
peethebee
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
; Emailadresse
$EMail = ""
; RegistrierungsID
$ID = ""
; Schlüssel
$Key = ""
If @OSArch = "X86" Then
$InstallDir = $InstallDirX86
ElseIf @OSArch = "X64" Then
$InstallDir = $InstallDirX64
EndIf
If FileExists($Source & $Installer) Then
ShellExecuteWait($Source & $Installer,"/SILENT /NOCANCEL /DIR=" & '"' & $InstallDir & '"')
If ProcessExists("IsoBuster_toolbar.exe") Then
ProcessClose("IsoBuster_toolbar.exe")
EndIf
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
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
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
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
@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 ...
was soll es machen
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!
Nein, er hat oben die Variable $Installer mit:
[autoit]$Installer = "isobuster_all_lang.exe"
[/autoit]
belegt. Zwischen dem Befehl und den Parametern muss aber normalerweise ein Leerzeichen stehen.
Also entweder am Ende der $Installer-Variablen oder beim ShellExecute-Aufruf.
Achso
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!