Ordner suchen und löschen

  • Hallo zusammen,

    brauche mal eure Hilfe für ein "kleines" Problem.

    Ich habe ein Script geschrieben, welches eine Installation von einem Programm macht. Dummweise funktioniert diese nicht, wenn es vorher schon eine Version gab.
    Das genaue Problem ist, dass die Deinstallation der Software nicht sauber läuft, so das noch Reste im Benutzerprofil übrig bleiben. Installiere ich jetzt die neue Version, dann funktioniert sie nicht auf Grund der Fehlerhaften Deinstallation.

    Habe jetzt schon so weit geforscht, dass ich das Problem eingrenzen kann. Es liegt daran, dass in den Benutzerprofilen noch Verzeichnisse bzw. Dateien existieren.

    Ich will jetzt das Installationsscipt soweit erweitern, dass er nach der Deinstallation nochmals alle Verzeichnisse durchsucht nach dem Programmnamen durchsucht und diese, wenn vorhanden löscht.

    Jetzt bräuchte ich bitte die Ansätze von euch, wie ich folgendes mache:

    1. -> durchsuche den Zweig "D:\Profile\Dokumente und Einstellungen" nach gotomaxx. Hierbei sollen alle Unterverzeichnisse durchsucht werden.
    2. -> wenn gotomaxx gefunden wurde, dann genau dieses Verzeichniss löschen. Danach weiter machen, bis er keine Verzeichnisse mit dem Name gotomaxx unter "D:\Profile\Dokumente und Einstellungen" findet.
    3. -> wenn nichts gefunden, normal weiter machen

    filefindfirst unf filefindnext habe ich mir schon mal in der Hilfe angeschaut, aber irgendwie komme ich damit nicht richtig zurecht. Kann auch an der Hitze liegen... :)

    Hoffe Ihr könnt mir ein paar Tips und Ansätze mitteilen.


    ************************
    Dank eurer Hilfe Problem gelöst.
    Danke an alle Helfer

    Einmal editiert, zuletzt von iwu74 (17. Juni 2008 um 09:35)

  • ich weiss ja nicht wie dein programm aufgebaut ist aber wäre es nicht einfacher die neuen dateien zu überschreiben???

    Z.b. bei FileInstall gibt es den Pararmeter 1/0 bei 1 überschreibt er vorhandene dateien...
    Zu Ordnern usw suchen mit unterordnern gibt es schon 100 beiträge, das problem ist halt das es relativ lange dauert... gerade in Dokumente und einstellungen befinden sich halt viele Temp sachen usw...

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • HI

    wie wäre es wenn du FileExists benutzt.
    Du weißt ja wie die Datei heißt wenn sie existiert also:

    [autoit]


    If Fileexists("Pfad") Then
    FileDelete("Pfad")

    [/autoit]

    eagle

    • Offizieller Beitrag

    Vielleicht gefällt dir diese Lösung?

    [autoit]

    Dim $oFSO = ObjCreate('Scripting.FileSystemObject')
    Dim $Path = 'D:\Profile\Dokumente und Einstellungen'
    Dim $str = ''
    _ShowSubFolders($oFSO.GetFolder($Path))

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

    Func _ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    $str &= $Subfolder.Path & @LF
    _ShowSubFolders($Subfolder)
    Next
    EndFunc
    $aAllFolder = StringSplit($str, @LF)
    For $i = 1 To UBound($aAllFolder) -1
    If StringInStr($aAllFolder[$i], 'gotomaxx') Then $oFSO.DeleteFolder($aAllFolder[$i])
    Next

    [/autoit]

    Edit: Hatte die Rekursion vergessen, nun passt es.

  • grml bugfix woher weisst du das immer mit den objecten?...
    will sowas auch können, also die abfrage usw eines objectes versteh ich nun mittlerweile da ich mich ja wie gesagt intensiv mit der WMI und MSAcpi beschäftigt hatte aber woher kennt ihr nur immer diese anderen Objecte die ihr created? und wisst zudem auch noch was diese Zurückgeben kann?

    Wo ist dieser Wissensschatz versteckt? :D

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • @eagle
    Das Problem ist ja, dass ich nicht weiß wie die Datei heißt. Er legt für jede Installation einen anderen Dateinamen ab.
    Und je nachdem welcher Benutzer angemeldet war und das Programm benutzt hat, existiert in seinem Profil dieser gotomaxx Ordner.

    BugFix
    Hammer, absoluter Hammer. Ich raff nix, gar nix. Funktioniert aber wie hulle... :)
    ABER leider nur soweit, dass es alle Ordner durchsucht und sauber löscht, solange kein Unterordner im gotomaxx Ordner existiert. Ist ein Unterordner vorhanden, löscht er ihn zwar, bricht aber das Script ab.
    Gibt es vielleicht noch einen Parameter, den man setzen muß?

    Schon mal vielen vielen Dank für die Hilfe.

    • Offizieller Beitrag

    Warum das Programm abbricht, ist mir nicht ganz klar.
    Edit: Habs gefunden - die Auflistung enthält ja alle Pfadangaben einzeln, somit wird ein Parent-Folder bereits gelöscht und anschließend folgt der Verweis auf einen Subfolder (der jetzt nicht mehr existiert). Einfach eine FolderExists-Abfrage einbauen - dann läuft es.

    Spoiler anzeigen
    [autoit]

    Dim $oFSO = ObjCreate('Scripting.FileSystemObject')
    Dim $Path = 'D:\Profile\Dokumente und Einstellungen'
    Dim $str = ''
    _ShowSubFolders($oFSO.GetFolder($Path))

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

    Func _ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    $str &= $Subfolder.Path & @LF
    _ShowSubFolders($Subfolder)
    Next
    EndFunc
    $aAllFolder = StringSplit($str, @LF)
    For $i = 1 To UBound($aAllFolder) -1
    If StringInStr($aAllFolder[$i], 'gotomaxx') And $oFSO.FolderExists($aAllFolder[$i]) Then _
    $oFSO.DeleteFolder($aAllFolder[$i])
    Next

    [/autoit]

    FireFlyer
    Woher man das weiß? :D
    Ein Großteil von Skripten, die in VBS erstellt sind kann man 1:1 in AutoIt umsetzen. Auch VB-Code läßt sich als Grundlage verwenden. Also fleißig in VB-Archiven stöbern und vor allem sehr zu empfehlen: MSDN - Objektmodelle
    Hier mal der Link zum FSO

  • Ich bin unwürdig... :)

    Funktioniert alles super, solang ich es eigenständig aufrufe.
    Jetzt habe ich aber dein Scipt in meins übernommen und schon gehts nicht...war ja zu erwarten...

    Hier mein ganzes Scipt

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=PDFMAILER-Install.exe
    #AutoIt3Wrapper_Compression=4
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;
    ; AutoIt Version: 3.2.10
    ; Platform: WinXP
    ; Author:
    ;
    ; Script Function:
    ; Open Project Installation
    ;

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

    AutoItSetOption("TrayIconHide", 1) ; versteckt das Icon in der Trayleiste, somit keine Funktionionen über Trayicon (beenden etc.)

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

    #region - Global
    Global $Paused
    $ProjectName = "PDFMAILER V4" ; Name des Programms. Wird an alle Fenster weiter gegeben.
    $Version = "0.7"
    $Erstellt = "Juni 2008"
    $Erteller = "wu2"
    $Abteilung = "IL"
    #endregion - Global

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

    ;===============================================================
    ;===============================================================

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

    ;===============================================================
    ;===============================================================

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

    #region - HotKeys
    HotKeySet("{PAUSE}", "TogglePause") ;Skript wird unterbrochen und zeigt ToolTip an
    HotKeySet("{ESC}", "_Exit") ;zeigt Abbrechen Fenster an
    HotKeySet("{F1}", "Info") ; zeigt Hilfe Fenster an
    HotKeySet("^!x", "_AdminExit") ; beendet Skript, wenn Strg+Alt+X gedrückt wird
    #endregion - HotKeys

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

    ;===============================================================
    ;===============================================================

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

    #include <GuiConstants.au3> ; Wichtig zum erzeugen von einer GUI (OHNE keine GUI)
    #Include <GuiStatusBar.au3> ; Wichtig zum erzeugen von Statusbar (OHNE kein STATUSBAR)
    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    Opt("RunErrorsFatal", 0) ;1=fatal, 0=silent set @error

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") ; Legt fest, was passiert, wenn man das Fenster schließt

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

    #region - Seite1
    ; Erzeugen der Ersten Seite
    $Seite01 = GUICreate($ProjectName, 641, 481, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST)
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 400, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY,$WS_GROUP))
    $GraphicS1_1 = GUICtrlCreateGraphic(20, 100, 600, 280)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $S1_Zeile01 = GUICtrlCreateLabel("Es wird jetzt der PDFMailer V4 installiert.", 30, 110, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile03 = GUICtrlCreateLabel("Die Installtion wird ca. 5 Minuten dauern.", 30, 170, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile04 = GUICtrlCreateLabel("Eventuell vorab installierte Versionen werden gelöscht.", 30, 200, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile06 = GUICtrlCreateLabel("Am Ende wird ein maxx PDFMailer Drucker in der Druckerliste erscheinen.", 30, 260, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile08 = GUICtrlCreateLabel("Sie können mittels des Abbrechen-Knopfes die Installation bis zum nächsten", 30, 320, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile09 = GUICtrlCreateLabel("Neustart verhindern.", 30, 350, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $StartButton01 = GUICtrlCreateButton("START", 50, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($StartButton01, "Seite01_OK")
    $AbbrechenButton01 = GUICtrlCreateButton("Abbrechen", 260, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($AbbrechenButton01, "_Exit")
    $HilfeButton01 = GUICtrlCreateButton("Hilfe", 470, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($HilfeButton01, "Hilfe")
    #endregion - Seite1

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

    #region - Seite2
    ; Erzeugen der zweiten Seite
    $Seite02 = GUICreate($ProjectName , 641, 481, -1, -1, $WS_CAPTION, $WS_EX_APPWINDOW)
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 396, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY, $WS_GROUP))
    $GraphicS2_1 = GUICtrlCreateGraphic(168, 100, 308, 270)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $GraphicS2_2 = GUICtrlCreateGraphic(168, 380, 308, 60)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $Versionkontrolle = GUICtrlCreateLabel("Versionskontrolle", 180, 110, 149, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $ALTloeschen = GUICtrlCreateLabel("Alte Version löschen", 180, 140, 150 , 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Install = GUICtrlCreateLabel("Programminstallation", 180, 170, 170, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Feld_Fertig = GUICtrlCreateLabel(" ", 185, 400, 270, 22)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Versionkontrolle_Fertig = GUICtrlCreateLabel(" ", 410, 110, 37, 20) ; siehe unten in der funktion
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $ALTloeschen_Fertig = GUICtrlCreateLabel(" ", 410, 140, 37, 20)
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Install_Fertig = GUICtrlCreateLabel(" ", 410, 170, 37, 20)
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    #endregion - Seite 2

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

    #region Statusbar Seite 2
    ; Erzeugen eines Statusbar mit 5 Feldern, davon 2 Progressbars
    Local $StatusBar1, $ProgressBar1, $ProgressBar2, $Progress1 = 0, $Progress2 = 0
    Local $a_Parts[5] = [169, 309, 335 , 475, -1] ; ProgressFelder und StartBreite = 140
    $StatusBar1 = _GUICtrlStatusBar_Create ($Seite02); Erzeugt eine Statusbar bei der $Seite02
    _GUICtrlStatusBar_SetMinHeight ($StatusBar1, 20); Setzt die Höhe der Statusbar
    _GUICtrlStatusBar_SetParts ($StatusBar1, $a_Parts) ; Setzt fest, aus wie vielen Teilen die Statusbar bestehen soll
    $progressBar1 = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) ; Erzeugt einen Prozessbalken
    $progressBar2 = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) ; Erzeugt einen Prozessbalken
    $hProgress1 = GUICtrlGetHandle($progressBar1) ; Erlaubt das "Händling" des Prozessbalkens
    _GUICtrlStatusBar_EmbedControl ($StatusBar1, 1, $hProgress1) ; legt fest, in welcher Spalte der erste Prozessbalken laufen soll
    $hProgress2 = GUICtrlGetHandle($progressBar2) ; Erlaubt das "Händling" des Prozessbalkens
    _GUICtrlStatusBar_EmbedControl ($StatusBar1, 3, $hProgress2) ; legt fest, in welcher Spalte der zweite Prozessbalken laufen soll
    GUICtrlSetColor($ProgressBar1,32250); setzt die Farbe für den ersten "Laufbalken"
    #endregion Statusbar Seite 2

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

    #region -Seite 3
    ; Erzeugen der dritten Seite
    $Seite03 = GUICreate($ProjectName , 641, 481, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST) ;, $WS_EX_APPWINDOW
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 396, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY, $WS_GROUP))
    $GraphicS3_1 = GUICtrlCreateGraphic(20, 100, 600, 290)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $S3_Zeile01 = GUICtrlCreateLabel("Die Software wurde erfolgreich installiert.", 30, 110, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile02 = GUICtrlCreateLabel("Viel Spaß beim Benutzen des Programms.", 30, 170, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile03 = GUICtrlCreateLabel("Info:", 30, 230, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile04 = GUICtrlCreateLabel("Sie können jetzt ISO Zertifizierte PDF/A Dateien erzeugen.", 30, 260, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile05 = GUICtrlCreateLabel("_______________", 30, 300, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile06 = GUICtrlCreateLabel("Informationslogistik", 30, 320, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile07 = GUICtrlCreateLabel("Team System", 30, 340, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile08 = GUICtrlCreateLabel("wu2", 30, 360, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $BeendenButton = GUICtrlCreateButton("Beenden", 270, 410, 80, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($BeendenButton, "_AdminExit")
    #endregion - Seite 3

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

    ;===============================================================
    ;===============================================================

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

    #region - Startet erste Seite
    GUISetState(@SW_SHOW, $Seite01)
    #endregion - Startet erste Seite

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

    ;===============================================================
    ;===============================================================

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

    #region - Schleife
    While 1
    Sleep (1000)
    WEnd
    Exit
    #endregion - Schleife

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

    ;===============================================================
    ;===============================================================

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

    #region - Funktion Seite 1
    Func Seite01_OK()
    Sleep(1000)
    GUISetState( @SW_SHOW, $Seite02 ) ;öffnet Seite02
    GUISetState( @SW_HIDE, $Seite01 ) ;versteckt Seite01
    Sleep(2000)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installations Status Gesamt", 4)
    $Progress1 = 0 ; setzt die erste Statusbar auf 0
    $Progress2 = 0 ; setzt die zweite Statusbar auf 0
    ;~ ***********************
    Func_Install()
    ;~ ***********************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation beendet", 4)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation beendet", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 100)
    Sleep(2000)
    GUISetState( @SW_SHOW, $Seite03 ) ;öffnet Seite03
    GUISetState( @SW_HIDE, $Seite02 ) ;versteckt Seite02
    EndFunc ;==>Seite01_OK
    #endregion - Funktion Seite 1

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

    ;---------------------------------------------------------------

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

    #region - Funktion Seite 3
    Func Neustart()
    Sleep(500)
    ProgressOn("Neustart", "Laufzeit", "0 Sek bis Neustart")
    For $i = 1 To 60 Step 1
    Sleep(1000)
    ProgressSet($i, 60 - $i & " Sekunden bis Neustart")
    Next
    ProgressSet(100, "Laufzeit", "Neustart wird ausgelöst")
    Sleep(1000)
    ProgressOff()
    Shutdown(2)
    Exit
    EndFunc ;==>Neustart

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

    ;---------------------------------------------------------------

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

    Func Neustart2()
    Sleep (2000)
    Shutdown (2)
    Exit
    EndFunc ;==>Neustart2
    #endregion - Funktion Seite 3

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

    ;===============================================================
    ;===============================================================

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

    ;~ ***************************************************
    ;~ ****** Suchfunktion ******
    Func _ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    $str &= $Subfolder.Path & @LF
    _ShowSubFolders($Subfolder)
    Next
    EndFunc
    ;~ ***************************************************

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

    #region - Installationen
    ;~ ***************************************************
    Func Func_Install()
    ;===============================================================
    GUICtrlSetData($Feld_Fertig, "Versionskontrolle")
    _GUICtrlStatusBar_SetText ($StatusBar1, "Versionskontrolle", 0)
    GUICtrlSetData($Versionkontrolle_Fertig, "läuft")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 10)
    $i = 0
    ; Abfragen V3
    ; ----------------------------------------------------------
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{528EC8F4-1C19-41BA-80A1-0B5EA21BA628}","DisplayName")
    If @error = 1 then ; Wenn keine Alte Version gefunden wurde, dann 2
    $i = $i + 2
    Else ; Wenn Alte Version gefunden, dann Wert auf 4
    $i = $i + 4
    GUICtrlSetData ($ProgressBar1, $Progress1 + 50)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 20)
    EndIf
    Sleep(1000)
    ; Abfragen V4
    ; ----------------------------------------------------------
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{01310914-E3B8-40E8-BCF7-9C42E0639A43}","DisplayName")
    If @error = 1 then ; Wenn keine Neue Version gefunden wurde, dann Wert 8
    $i = $i + 8
    Else ; Wenn Neue Version gefunden wurde, dann Wert 16
    $i = $i + 16
    EndIf
    Sleep(500)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Versionskontrolle beendet", 0)
    GUICtrlSetData($Versionkontrolle_Fertig, "fertig")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 30)
    Sleep(2000)
    ; ******************** Verarbeitung ************************
    Select
    Case $i = 10 ; Alt Nein - Neu Nein / Install
    ; ************ Kein Deinstallation *****************
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    GUICtrlSetData($Feld_Fertig, "Deinstallation nicht nötig")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    Sleep(5000)
    ; ************ Installation *****************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 60)
    GUICtrlSetData($Install_Fertig, "läuft")
    GUICtrlSetData($Feld_Fertig, "Installation Version 4.1.40")
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 20)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 70)
    Sleep(500)
    $Return = RunWait("msiexec /i ""C:\Temp\Install\PDFMailer-V4\pdfmailer4de.msi"" /qn", "", @SW_HIDE)
    If @error = 1 Or ($Return > 1600 And $Return < 1650 ) then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL" & @CRLF & "MSI-Fehler-Code: " & $Return); bei Fehler MSGBOX und Exit
    Sleep(5000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 60)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(5000)
    ShellExecuteWait("C:\Temp\Install\PDFMailer-V4\einst.bat", "", @SW_HIDE)
    If @error = 1 then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL"); bei Fehler MSGBOX und Exit
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 90)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 90)
    Sleep(2000)
    ; ******************************************************
    Case $i = 12 ; Alt Ja - Neu Nein / Deinstall Alt + Install Neu
    ; ************ Deinstallation ************************
    Sleep(2000)
    GUICtrlSetData($Feld_Fertig, "Alte Version wird gelöscht")
    GUICtrlSetData($ALTloeschen_Fertig, "läuft")
    _GUICtrlStatusBar_SetText ($StatusBar1, "Deinstallation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 20)
    Sleep(500)
    ProcessClose("EXCEL.EXE") ; Excel beenden falls geöffnet
    $PID = ProcessExists("EXCEL.EXE")
    If $PID Then ProcessClose($PID)
    sleep(500)
    ProcessClose("WINWORD.EXE") ; Word beenden falls geöffnet
    $PID = ProcessExists("WINWORD.EXE")
    If $PID Then ProcessClose($PID)
    Sleep(500)
    ProcessClose("POWERPNT.EXE") ; Powerpoint beenden falls geöffnet
    $PID = ProcessExists("POWERPNT.EXE")
    If $PID Then ProcessClose($PID)
    Sleep(500)
    ProcessClose("GEngine.EXE") ; PDFMAILER beenden falls geöffnet
    $PID = ProcessExists("GEngine.EXE")
    If $PID Then ProcessClose($PID)
    sleep(500)
    ProcessClose("PDFMailerApp.EXE") ; PDFMAILER beenden falls geöffnet
    $PID = ProcessExists("PDFMailerApp.EXE")
    If $PID Then ProcessClose($PID)
    sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    Sleep(500)
    RunWait("C:\WINDOWS\system32\msiexec.exe" & " /x{528EC8F4-1C19-41BA-80A1-0B5EA21BA628}" & " /qb" & " /norestart", "", @SW_HIDE)
    Sleep(5000)
    ; ************************************************
    ; ************************************************
    ; ------------------------------------------------
    Dim $oFSO = ObjCreate('Scripting.FileSystemObject')
    Dim $Path = 'D:\Profile\Dokumente und Einstellungen'
    Dim $str = ''
    dim $Ordner = 'gotomaxx'
    _ShowSubFolders($oFSO.GetFolder($Path))
    $aAllFolder = StringSplit($str, @LF)
    For $su1 = 1 To UBound($aAllFolder) -1
    If StringInStr($aAllFolder[$su1], $Ordner) And $oFSO.FolderExists($aAllFolder[$su1]) Then _
    $oFSO.DeleteFolder($aAllFolder[$i])
    Next
    ; ------------------------------------------------
    ; ************************************************
    ; ************************************************
    Sleep(5000)
    If FileExists("c:\temp\install\PDFMailer") Then DirRemove("c:\temp\install\PDFMailer", 1) ; Löscht Verzeichniss des alten PDFMailers
    Sleep(2000)
    If FileExists("C:\Programme\gotomaxx") Then DirRemove("C:\Programme\gotomaxx", 1) ; Löscht Verzeichniss des alten PDFMailers
    Sleep(2000)
    RunWait("cscript c:\windows\system32\prnmngr.vbs -d -p ""maxx PDFMAILER Standard""","", @SW_HIDE) ; Löscht den Drucker, falls er nicht Deinstalliert wurde
    Sleep(2000)
    GUICtrlSetData($Feld_Fertig, "Alte Version gelöscht")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 50)
    Sleep(2000)
    ; ************ Installation *****************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 60)
    GUICtrlSetData($Install_Fertig, "läuft")
    GUICtrlSetData($Feld_Fertig, "Installation Version 4.1.40")
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 20)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 70)
    Sleep(500)
    $Return = RunWait("msiexec /i ""C:\Temp\Install\PDFMailer-V4\pdfmailer4de.msi"" /qn", "", @SW_HIDE)
    If @error = 1 Or ($Return > 1600 And $Return < 1650 ) then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL" & @CRLF & "MSI-Fehler-Code: " & $Return); bei Fehler MSGBOX und Exit
    Sleep(5000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 60)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(5000)
    ShellExecuteWait("C:\Temp\Install\PDFMailer-V4\einst.bat", "", @SW_HIDE)
    If @error = 1 then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL"); bei Fehler MSGBOX und Exit
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 90)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 90)
    Sleep(2000)
    ; ******************************************************
    Case Else ; Nix machen
    ; ************ Kein Deinstallation *****************
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    GUICtrlSetData($Feld_Fertig, "Deinstallation nicht nötig")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    Sleep(3000)
    ; ************ Kein Installation *******************
    GUICtrlSetData($Install_Fertig, "fertig")
    GUICtrlSetData($Feld_Fertig, "PDFMailer V4 schon installiert")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(3000)
    ; ******************************************************
    EndSelect

    ; **********************************************************
    EndFunc

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

    #region - Generelle Funktionen
    ;******** Beenden mit Nachfrage = ESC oder Abbrechen oder auf X im Fenster
    Func _Exit()
    $Box = MsgBox(262452, "Installation abbrechen", "Wenn Sie jetzt die Installation abbrechen, wird sie beim nächsten Neustart wieder gestartet." & @CRLF & @CRLF & "Wirklich beenden?")
    If $Box = 6 Then
    Exit
    EndIf
    EndFunc ;==>_Exit
    ;---------------------------------------------------------------

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

    ;******** Skript per Hotkey beenden = Strg + Alt + X **********
    Func _AdminExit()
    Exit
    EndFunc ;==>_AdminExit
    ;---------------------------------------------------------------

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

    ;******** Skript per Hotkey pausieren = Pause Taste **********
    Func TogglePause()
    $Paused = Not $Paused
    While $Paused
    Sleep(100)
    ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")
    EndFunc ;==>TogglePause
    ;---------------------------------------------------------------

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

    ;******** Info *************************************************
    Func Info() ; Zeigt Hilfe Fenster an
    MsgBox(262208, "Info", $ProjectName & " Installation" & @CRLF & "Version: " & $Version & @CRLF & "Erstellt: " & $Erstellt & @CRLF & "Ersteller: " & $Erteller & @CRLF & "Abteilung: " & $Abteilung& @CRLF & "Mit Freundlicher Unterstützung des AutoIT Forums" & @CRLF & "Special THX an BugFix und Progandy")
    EndFunc ;==>Info
    ;---------------------------------------------------------------

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

    ;******** Hilfe ************************************************
    Func Hilfe()
    MsgBox(262176, "Hilfe", "Haben Sie Fragen zu dieser Installation," & @CRLF & "dann rufen Sie bitte den Helpdesk " & @CRLF & "" & @CRLF & "unter Tel. 2000 an.")
    EndFunc ;==>Hilfe

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

    #endregion - Generelle Funktionen
    ;---------------------------------------------------------------

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

    was mache ich verkehrt?

    Fehler:
    Line -1:
    Error: Variable used without beeing declared

  • Die Fehlermeldung ist jetzt weg, nur leider funktioniert auch dein tolles Scipt nicht mehr.

    Ich denke, dass ich es einfach verkehrt aufrufe.
    Wenn ich dein Script einfach in meins kopiere, dann bekomme ich Fehlermeldung. Gehe mal stark von aus, dass man in einer Func nicht noch ein Func aufrufen kann.
    Schreibe ich deine Funktion ausserhalb meiner Install Funktion funktioniert deins nicht.

    Wärest du vielleicht noch mal so nett und würdest dir mein "Dilemma" anschauen.
    Dein Teil ist durch viele *** makiert.

    Ist wie üblich nur ne Kleinigkeit, die ich aber leider durch mein "nicht vorhandenes Wissen" entdecke kann :)

    Es funktioniert:
    - das Kontrollieren des Registry Einträge.
    - das löschen des Programms
    - das installieren des Programms

    Ich dreh noch durch mit diesem Programm
    Vor allem wenn einem die Hilfe nicht so viel weiter helfen kann, aber zum Glück gibt es hier ein tolles Forum mit netten, hilfsbereiten Leuten.


    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=PDFMAILER-Install.exe
    #AutoIt3Wrapper_Compression=4
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;
    ; AutoIt Version: 3.2.10
    ; Platform: WinXP
    ; Author: Iwu74
    ;
    ; Script Function:
    ; Open Project Installation
    ;

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

    AutoItSetOption("TrayIconHide", 1) ; versteckt das Icon in der Trayleiste, somit keine Funktionionen über Trayicon (beenden etc.)

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

    #region - Global
    Global $Paused
    Global $str
    $ProjectName = "PDFMAILER V4" ; Name des Programms. Wird an alle Fenster weiter gegeben.
    $Version = "0.7"
    $Erstellt = "Juni 2008"
    $Erteller = "wu2"
    $Abteilung = "IL"
    #endregion - Global

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

    ;===============================================================
    ;===============================================================

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

    #region - Dateien ins Skript einbinden
    ;~ FileInstall("H:\Auto-IT\Scripte\UpdatePack\Logo_klein.gif", "C:\Temp\Install\UpdatePacks\Logo_klein.jpg", 1)
    #endregion - Dateien ins Skript einbinden

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

    ;===============================================================
    ;===============================================================

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

    #region - HotKeys
    HotKeySet("{PAUSE}", "TogglePause") ;Skript wird unterbrochen und zeigt ToolTip an
    HotKeySet("{ESC}", "_Exit") ;zeigt Abbrechen Fenster an
    HotKeySet("{F1}", "Info") ; zeigt Hilfe Fenster an
    HotKeySet("^!x", "_AdminExit") ; beendet Skript, wenn Strg+Alt+X gedrückt wird
    #endregion - HotKeys

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

    ;===============================================================
    ;===============================================================

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

    #include <GuiConstants.au3> ; Wichtig zum erzeugen von einer GUI (OHNE keine GUI)
    #Include <GuiStatusBar.au3> ; Wichtig zum erzeugen von Statusbar (OHNE kein STATUSBAR)
    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    Opt("RunErrorsFatal", 0) ;1=fatal, 0=silent set @error

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") ; Legt fest, was passiert, wenn man das Fenster schließt

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

    #region - Seite1
    ; Erzeugen der Ersten Seite
    $Seite01 = GUICreate($ProjectName, 641, 481, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST)
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 400, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY,$WS_GROUP))
    $GraphicS1_1 = GUICtrlCreateGraphic(20, 100, 600, 280)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $S1_Zeile01 = GUICtrlCreateLabel("Es wird jetzt der PDFMailer V4 installiert.", 30, 110, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile03 = GUICtrlCreateLabel("Die Installtion wird ca. 5 Minuten dauern.", 30, 170, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile04 = GUICtrlCreateLabel("Eventuell vorab installierte Versionen werden gelöscht.", 30, 200, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile06 = GUICtrlCreateLabel("Am Ende wird ein maxx PDFMailer Drucker in der Druckerliste erscheinen.", 30, 260, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile08 = GUICtrlCreateLabel("Sie können mittels des Abbrechen-Knopfes die Installation bis zum nächsten", 30, 320, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile09 = GUICtrlCreateLabel("Neustart verhindern.", 30, 350, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $StartButton01 = GUICtrlCreateButton("START", 50, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($StartButton01, "Seite01_OK")
    $AbbrechenButton01 = GUICtrlCreateButton("Abbrechen", 260, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($AbbrechenButton01, "_Exit")
    $HilfeButton01 = GUICtrlCreateButton("Hilfe", 470, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($HilfeButton01, "Hilfe")
    #endregion - Seite1

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

    #region - Seite2
    ; Erzeugen der zweiten Seite
    $Seite02 = GUICreate($ProjectName , 641, 481, -1, -1, $WS_CAPTION, $WS_EX_APPWINDOW)
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 396, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY, $WS_GROUP))
    $GraphicS2_1 = GUICtrlCreateGraphic(168, 100, 308, 270)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $GraphicS2_2 = GUICtrlCreateGraphic(168, 380, 308, 60)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $Versionkontrolle = GUICtrlCreateLabel("Versionskontrolle", 180, 110, 149, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $ALTloeschen = GUICtrlCreateLabel("Alte Version löschen", 180, 140, 150 , 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Install = GUICtrlCreateLabel("Programminstallation", 180, 170, 170, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Feld_Fertig = GUICtrlCreateLabel(" ", 185, 400, 270, 22)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Versionkontrolle_Fertig = GUICtrlCreateLabel(" ", 410, 110, 37, 20) ; siehe unten in der funktion
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $ALTloeschen_Fertig = GUICtrlCreateLabel(" ", 410, 140, 37, 20)
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Install_Fertig = GUICtrlCreateLabel(" ", 410, 170, 37, 20)
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    #endregion - Seite 2

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

    #region Statusbar Seite 2
    ; Erzeugen eines Statusbar mit 5 Feldern, davon 2 Progressbars
    Local $StatusBar1, $ProgressBar1, $ProgressBar2, $Progress1 = 0, $Progress2 = 0
    Local $a_Parts[5] = [169, 309, 335 , 475, -1] ; ProgressFelder und StartBreite = 140
    $StatusBar1 = _GUICtrlStatusBar_Create ($Seite02); Erzeugt eine Statusbar bei der $Seite02
    _GUICtrlStatusBar_SetMinHeight ($StatusBar1, 20); Setzt die Höhe der Statusbar
    _GUICtrlStatusBar_SetParts ($StatusBar1, $a_Parts) ; Setzt fest, aus wie vielen Teilen die Statusbar bestehen soll
    $progressBar1 = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) ; Erzeugt einen Prozessbalken
    $progressBar2 = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) ; Erzeugt einen Prozessbalken
    $hProgress1 = GUICtrlGetHandle($progressBar1) ; Erlaubt das "Händling" des Prozessbalkens
    _GUICtrlStatusBar_EmbedControl ($StatusBar1, 1, $hProgress1) ; legt fest, in welcher Spalte der erste Prozessbalken laufen soll
    $hProgress2 = GUICtrlGetHandle($progressBar2) ; Erlaubt das "Händling" des Prozessbalkens
    _GUICtrlStatusBar_EmbedControl ($StatusBar1, 3, $hProgress2) ; legt fest, in welcher Spalte der zweite Prozessbalken laufen soll
    GUICtrlSetColor($ProgressBar1,32250); setzt die Farbe für den ersten "Laufbalken"
    #endregion Statusbar Seite 2

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

    #region -Seite 3
    ; Erzeugen der dritten Seite
    $Seite03 = GUICreate($ProjectName , 641, 481, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST) ;, $WS_EX_APPWINDOW
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 396, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY, $WS_GROUP))
    $GraphicS3_1 = GUICtrlCreateGraphic(20, 100, 600, 290)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $S3_Zeile01 = GUICtrlCreateLabel("Die Software wurde erfolgreich installiert.", 30, 110, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile02 = GUICtrlCreateLabel("Viel Spaß beim Benutzen des Programms.", 30, 170, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile03 = GUICtrlCreateLabel("Info:", 30, 230, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile04 = GUICtrlCreateLabel("Sie können jetzt ISO Zertifizierte PDF/A Dateien erzeugen.", 30, 260, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile05 = GUICtrlCreateLabel("_______________", 30, 300, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile06 = GUICtrlCreateLabel("Informationslogistik", 30, 320, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile07 = GUICtrlCreateLabel("Team System", 30, 340, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile08 = GUICtrlCreateLabel("wu2", 30, 360, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $BeendenButton = GUICtrlCreateButton("Beenden", 270, 410, 80, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($BeendenButton, "_AdminExit")
    #endregion - Seite 3

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

    ;===============================================================
    ;===============================================================

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

    #region - Startet erste Seite
    GUISetState(@SW_SHOW, $Seite01)
    #endregion - Startet erste Seite

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

    ;===============================================================
    ;===============================================================

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

    #region - Schleife
    While 1
    Sleep (1000)
    WEnd
    Exit
    #endregion - Schleife

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

    ;===============================================================
    ;===============================================================

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

    #region - Funktion Seite 1
    Func Seite01_OK()
    Sleep(1000)
    GUISetState( @SW_SHOW, $Seite02 ) ;öffnet Seite02
    GUISetState( @SW_HIDE, $Seite01 ) ;versteckt Seite01
    Sleep(2000)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installations Status Gesamt", 4)
    $Progress1 = 0 ; setzt die erste Statusbar auf 0
    $Progress2 = 0 ; setzt die zweite Statusbar auf 0
    ;~ ***********************
    Func_Install()
    ;~ ***********************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation beendet", 4)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation beendet", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 100)
    Sleep(2000)
    GUISetState( @SW_SHOW, $Seite03 ) ;öffnet Seite03
    GUISetState( @SW_HIDE, $Seite02 ) ;versteckt Seite02
    EndFunc ;==>Seite01_OK
    #endregion - Funktion Seite 1

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

    ;---------------------------------------------------------------

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

    #region - Funktion Seite 3
    Func Neustart()
    Sleep(500)
    ProgressOn("Neustart", "Laufzeit", "0 Sek bis Neustart")
    For $i = 1 To 60 Step 1
    Sleep(1000)
    ProgressSet($i, 60 - $i & " Sekunden bis Neustart")
    Next
    ProgressSet(100, "Laufzeit", "Neustart wird ausgelöst")
    Sleep(1000)
    ProgressOff()
    Shutdown(2)
    Exit
    EndFunc ;==>Neustart

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

    ;---------------------------------------------------------------

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

    Func Neustart2()
    Sleep (2000)
    Shutdown (2)
    Exit
    EndFunc ;==>Neustart2
    #endregion - Funktion Seite 3

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

    ;===============================================================
    ;===============================================================

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

    #region - Installationen
    ;~ ***************************************************
    Func Func_Install()
    ;===============================================================
    GUICtrlSetData($Feld_Fertig, "Versionskontrolle")
    _GUICtrlStatusBar_SetText ($StatusBar1, "Versionskontrolle", 0)
    GUICtrlSetData($Versionkontrolle_Fertig, "läuft")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 10)
    $i = 0
    ; Abfragen V3
    ; ----------------------------------------------------------
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{528EC8F4-1C19-41BA-80A1-0B5EA21BA628}","DisplayName")
    If @error = 1 then ; Wenn keine Alte Version gefunden wurde, dann 2
    $i = $i + 2
    Else ; Wenn Alte Version gefunden, dann Wert auf 4
    $i = $i + 4
    GUICtrlSetData ($ProgressBar1, $Progress1 + 50)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 20)
    EndIf
    Sleep(1000)
    ; Abfragen V4
    ; ----------------------------------------------------------
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{01310914-E3B8-40E8-BCF7-9C42E0639A43}","DisplayName")
    If @error = 1 then ; Wenn keine Neue Version gefunden wurde, dann Wert 8
    $i = $i + 8
    Else ; Wenn Neue Version gefunden wurde, dann Wert 16
    $i = $i + 16
    EndIf
    Sleep(500)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Versionskontrolle beendet", 0)
    GUICtrlSetData($Versionkontrolle_Fertig, "fertig")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 30)
    Sleep(2000)
    ; ******************** Verarbeitung ************************
    Select
    Case $i = 10 ; Alt Nein - Neu Nein / Install
    ; ************ Kein Deinstallation *****************
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    GUICtrlSetData($Feld_Fertig, "Deinstallation nicht nötig")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    Sleep(5000)
    ; ************ Installation *****************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 60)
    GUICtrlSetData($Install_Fertig, "läuft")
    GUICtrlSetData($Feld_Fertig, "Installation Version 4.1.40")
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 20)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 70)
    Sleep(500)
    $Return = RunWait("msiexec /i ""C:\Temp\Install\PDFMailer-V4\pdfmailer4de.msi"" /qn", "", @SW_HIDE)
    If @error = 1 Or ($Return > 1600 And $Return < 1650 ) then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL" & @CRLF & "MSI-Fehler-Code: " & $Return); bei Fehler MSGBOX und Exit
    Sleep(5000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 60)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(5000)
    ShellExecuteWait("C:\Temp\Install\PDFMailer-V4\einst.bat", "", @SW_HIDE)
    If @error = 1 then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL"); bei Fehler MSGBOX und Exit
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 90)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 90)
    Sleep(2000)
    ; ******************************************************
    Case $i = 12 ; Alt Ja - Neu Nein / Deinstall Alt + Install Neu
    ; ************ Deinstallation ************************
    Sleep(2000)
    GUICtrlSetData($Feld_Fertig, "Alte Version wird gelöscht")
    GUICtrlSetData($ALTloeschen_Fertig, "läuft")
    _GUICtrlStatusBar_SetText ($StatusBar1, "Deinstallation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 20)
    Sleep(500)
    ProcessClose("EXCEL.EXE") ; Excel beenden falls geöffnet
    $PID = ProcessExists("EXCEL.EXE")
    If $PID Then ProcessClose($PID)
    sleep(500)
    ProcessClose("WINWORD.EXE") ; Word beenden falls geöffnet
    $PID = ProcessExists("WINWORD.EXE")
    If $PID Then ProcessClose($PID)
    Sleep(500)
    ProcessClose("POWERPNT.EXE") ; Powerpoint beenden falls geöffnet
    $PID = ProcessExists("POWERPNT.EXE")
    If $PID Then ProcessClose($PID)
    Sleep(500)
    ProcessClose("GEngine.EXE") ; PDFMAILER beenden falls geöffnet
    $PID = ProcessExists("GEngine.EXE")
    If $PID Then ProcessClose($PID)
    sleep(500)
    ProcessClose("PDFMailerApp.EXE") ; PDFMAILER beenden falls geöffnet
    $PID = ProcessExists("PDFMailerApp.EXE")
    If $PID Then ProcessClose($PID)
    sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    Sleep(500)
    RunWait("C:\WINDOWS\system32\msiexec.exe" & " /x{528EC8F4-1C19-41BA-80A1-0B5EA21BA628}" & " /qb" & " /norestart", "", @SW_HIDE)
    Sleep(5000)
    ; ************************************************
    ; ************************************************
    ; ------------------------------------------------
    Dim $oFSO = ObjCreate('Scripting.FileSystemObject')
    Dim $Path = 'D:\Profile\Dokumente und Einstellungen'
    Dim $str = ''
    _ShowSubFolders($oFSO.GetFolder($Path))

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

    ;~ func _ShowSubFolders($Folder)
    ;~ For $Subfolder in $Folder.SubFolders
    ;~ $str &= $Subfolder.Path & @LF
    ;~ _ShowSubFolders($Subfolder)
    ;~ Next
    ;~ EndFunc
    $aAllFolder = StringSplit($str, @LF)
    For $su = 1 To UBound($aAllFolder) -1
    If StringInStr($aAllFolder[$su], 'gotomaxx') And $oFSO.FolderExists($aAllFolder[$su]) Then _
    $oFSO.DeleteFolder($aAllFolder[$su])
    Next

    ; ------------------------------------------------
    ; ************************************************
    ; ************************************************
    Sleep(5000)
    If FileExists("c:\temp\install\PDFMailer") Then DirRemove("c:\temp\install\PDFMailer", 1) ; Löscht Verzeichniss des alten PDFMailers
    Sleep(2000)
    If FileExists("C:\Programme\gotomaxx") Then DirRemove("C:\Programme\gotomaxx", 1) ; Löscht Verzeichniss des alten PDFMailers
    Sleep(2000)
    RunWait("cscript c:\windows\system32\prnmngr.vbs -d -p ""maxx PDFMAILER Standard""","", @SW_HIDE) ; Löscht den Drucker, falls er nicht Deinstalliert wurde
    Sleep(2000)
    GUICtrlSetData($Feld_Fertig, "Alte Version gelöscht")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 50)
    Sleep(2000)
    ; ************ Installation *****************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 60)
    GUICtrlSetData($Install_Fertig, "läuft")
    GUICtrlSetData($Feld_Fertig, "Installation Version 4.1.40")
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 20)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 70)
    Sleep(500)
    $Return = RunWait("msiexec /i ""C:\Temp\Install\PDFMailer-V4\pdfmailer4de.msi"" /qn", "", @SW_HIDE)
    If @error = 1 Or ($Return > 1600 And $Return < 1650 ) then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL" & @CRLF & "MSI-Fehler-Code: " & $Return); bei Fehler MSGBOX und Exit
    Sleep(5000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 60)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(5000)
    ShellExecuteWait("C:\Temp\Install\PDFMailer-V4\einst.bat", "", @SW_HIDE)
    If @error = 1 then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL"); bei Fehler MSGBOX und Exit
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 90)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 90)
    Sleep(2000)
    ; ******************************************************
    Case Else ; Nix machen
    ; ************ Kein Deinstallation *****************
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    GUICtrlSetData($Feld_Fertig, "Deinstallation nicht nötig")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    Sleep(3000)
    ; ************ Kein Installation *******************
    GUICtrlSetData($Install_Fertig, "fertig")
    GUICtrlSetData($Feld_Fertig, "PDFMailer V4 schon installiert")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(3000)
    ; ******************************************************
    EndSelect

    ; **********************************************************
    EndFunc

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

    ;~ ***************************************************
    ;~ ****** Suchfunktion ******
    Func _ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    $str &= $Subfolder.Path & @LF
    _ShowSubFolders($Subfolder)
    Next
    EndFunc
    ;~ ***************************************************

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

    #region - Generelle Funktionen
    ;******** Beenden mit Nachfrage = ESC oder Abbrechen oder auf X im Fenster
    Func _Exit()
    $Box = MsgBox(262452, "Installation abbrechen", "Wenn Sie jetzt die Installation abbrechen, wird sie beim nächsten Neustart wieder gestartet." & @CRLF & @CRLF & "Wirklich beenden?")
    If $Box = 6 Then
    Exit
    EndIf
    EndFunc ;==>_Exit
    ;---------------------------------------------------------------

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

    ;******** Skript per Hotkey beenden = Strg + Alt + X **********
    Func _AdminExit()
    Exit
    EndFunc ;==>_AdminExit
    ;---------------------------------------------------------------

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

    ;******** Skript per Hotkey pausieren = Pause Taste **********
    Func TogglePause()
    $Paused = Not $Paused
    While $Paused
    Sleep(100)
    ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")
    EndFunc ;==>TogglePause
    ;---------------------------------------------------------------

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

    ;******** Info *************************************************
    Func Info() ; Zeigt Hilfe Fenster an
    MsgBox(262208, "Info", $ProjectName & " Installation" & @CRLF & "Version: " & $Version & @CRLF & "Erstellt: " & $Erstellt & @CRLF & "Ersteller: " & $Erteller & @CRLF & "Abteilung: " & $Abteilung& @CRLF & "Mit Freundlicher Unterstützung des AutoIT Forums" & @CRLF & "Special THX an BugFix und Progandy")
    EndFunc ;==>Info
    ;---------------------------------------------------------------

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

    ;******** Hilfe ************************************************
    Func Hilfe()
    MsgBox(262176, "Hilfe", "Haben Sie Fragen zu dieser Installation," & @CRLF & "dann rufen Sie bitte den Helpdesk " & @CRLF & "" & @CRLF & "unter Tel. 2000 an.")
    EndFunc ;==>Hilfe

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

    #endregion - Generelle Funktionen
    ;---------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Zitat

    FireFlyer
    Woher man das weiß? :D
    Ein Großteil von Skripten, die in VBS erstellt sind kann man 1:1 in AutoIt umsetzen. Auch VB-Code läßt sich als Grundlage verwenden. Also fleißig in VB-Archiven stöbern und vor allem sehr zu empfehlen: MSDN - Objektmodelle
    Hier mal der Link zum FSO

    Jo auf MSDN bin ich mittlerweile stammgast ich versuch ja nach wie vor meine cpu temperatur auszulesen^^

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    • Offizieller Beitrag

    Hi,
    ich hab mal einige Korrekturen gemacht. Markiert mit "####################".
    Du verwendest noch nicht Version 3.2.12.0 - steig mal um ;)

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=PDFMAILER-Install.exe
    #AutoIt3Wrapper_Compression=4
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;
    ; AutoIt Version: 3.2.10
    ; Platform: WinXP
    ; Author: Iwu74
    ;
    ; Script Function:
    ; Open Project Installation
    ;

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

    AutoItSetOption("TrayIconHide", 1) ; versteckt das Icon in der Trayleiste, somit keine Funktionionen über Trayicon (beenden etc.)

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

    #region - Global
    Global $Paused
    Global $str
    Global $oFSO = ObjCreate('Scripting.FileSystemObject') ; ######################
    Global $Path = 'D:\Profile\Dokumente und Einstellungen' ; ######################
    Global $strPath = '' ; ######################
    $ProjectName = "PDFMAILER V4" ; Name des Programms. Wird an alle Fenster weiter gegeben.
    $Version = "0.7"
    $Erstellt = "Juni 2008"
    $Erteller = "wu2"
    $Abteilung = "IL"
    #endregion - Global

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

    ;===============================================================
    ;===============================================================

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

    #region - Dateien ins Skript einbinden
    ;~ FileInstall("H:\Auto-IT\Scripte\UpdatePack\Logo_klein.gif", "C:\Temp\Install\UpdatePacks\Logo_klein.jpg", 1)
    #endregion - Dateien ins Skript einbinden

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

    ;===============================================================
    ;===============================================================

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

    #region - HotKeys
    HotKeySet("{PAUSE}", "TogglePause") ;Skript wird unterbrochen und zeigt ToolTip an
    HotKeySet("{ESC}", "_Exit") ;zeigt Abbrechen Fenster an
    HotKeySet("{F1}", "Info") ; zeigt Hilfe Fenster an
    HotKeySet("^!x", "_AdminExit") ; beendet Skript, wenn Strg+Alt+X gedrückt wird
    #endregion - HotKeys

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

    ;===============================================================
    ;===============================================================

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

    #include <GuiConstants.au3> ; Wichtig zum erzeugen von einer GUI (OHNE keine GUI)
    #Include <GuiStatusBar.au3> ; Wichtig zum erzeugen von Statusbar (OHNE kein STATUSBAR)
    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    Opt("RunErrorsFatal", 0) ;1=fatal, 0=silent set @error ########################## GIBT ES NICHT MEHR in 3.2.12.0 #############

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") ; Legt fest, was passiert, wenn man das Fenster schließt

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

    #region - Seite1
    ; Erzeugen der Ersten Seite
    $Seite01 = GUICreate($ProjectName, 641, 481, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST)
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 400, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY,$WS_GROUP))
    $GraphicS1_1 = GUICtrlCreateGraphic(20, 100, 600, 280)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $S1_Zeile01 = GUICtrlCreateLabel("Es wird jetzt der PDFMailer V4 installiert.", 30, 110, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile03 = GUICtrlCreateLabel("Die Installtion wird ca. 5 Minuten dauern.", 30, 170, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile04 = GUICtrlCreateLabel("Eventuell vorab installierte Versionen werden gelöscht.", 30, 200, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile06 = GUICtrlCreateLabel("Am Ende wird ein maxx PDFMailer Drucker in der Druckerliste erscheinen.", 30, 260, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile08 = GUICtrlCreateLabel("Sie können mittels des Abbrechen-Knopfes die Installation bis zum nächsten", 30, 320, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S1_Zeile09 = GUICtrlCreateLabel("Neustart verhindern.", 30, 350, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $StartButton01 = GUICtrlCreateButton("START", 50, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($StartButton01, "Seite01_OK")
    $AbbrechenButton01 = GUICtrlCreateButton("Abbrechen", 260, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($AbbrechenButton01, "_Exit")
    $HilfeButton01 = GUICtrlCreateButton("Hilfe", 470, 400, 100, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($HilfeButton01, "Hilfe")
    #endregion - Seite1

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

    #region - Seite2
    ; Erzeugen der zweiten Seite
    $Seite02 = GUICreate($ProjectName , 641, 481, -1, -1, $WS_CAPTION, $WS_EX_APPWINDOW)
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 396, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY, $WS_GROUP))
    $GraphicS2_1 = GUICtrlCreateGraphic(168, 100, 308, 270)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $GraphicS2_2 = GUICtrlCreateGraphic(168, 380, 308, 60)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $Versionkontrolle = GUICtrlCreateLabel("Versionskontrolle", 180, 110, 149, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $ALTloeschen = GUICtrlCreateLabel("Alte Version löschen", 180, 140, 150 , 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Install = GUICtrlCreateLabel("Programminstallation", 180, 170, 170, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Feld_Fertig = GUICtrlCreateLabel(" ", 185, 400, 270, 22)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Versionkontrolle_Fertig = GUICtrlCreateLabel(" ", 410, 110, 37, 20) ; siehe unten in der funktion
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $ALTloeschen_Fertig = GUICtrlCreateLabel(" ", 410, 140, 37, 20)
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Install_Fertig = GUICtrlCreateLabel(" ", 410, 170, 37, 20)
    GUICtrlSetFont(-1, 10, 400, 2, "Arial")
    GUICtrlSetColor(-1, 0x008080)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    #endregion - Seite 2

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

    #region Statusbar Seite 2
    ; Erzeugen eines Statusbar mit 5 Feldern, davon 2 Progressbars
    Local $StatusBar1, $ProgressBar1, $ProgressBar2, $Progress1 = 0, $Progress2 = 0
    Local $a_Parts[5] = [169, 309, 335 , 475, -1] ; ProgressFelder und StartBreite = 140
    $StatusBar1 = _GUICtrlStatusBar_Create ($Seite02); Erzeugt eine Statusbar bei der $Seite02
    _GUICtrlStatusBar_SetMinHeight ($StatusBar1, 20); Setzt die Höhe der Statusbar
    _GUICtrlStatusBar_SetParts ($StatusBar1, $a_Parts) ; Setzt fest, aus wie vielen Teilen die Statusbar bestehen soll
    $progressBar1 = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) ; Erzeugt einen Prozessbalken
    $progressBar2 = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) ; Erzeugt einen Prozessbalken
    $hProgress1 = GUICtrlGetHandle($progressBar1) ; Erlaubt das "Händling" des Prozessbalkens
    _GUICtrlStatusBar_EmbedControl ($StatusBar1, 1, $hProgress1) ; legt fest, in welcher Spalte der erste Prozessbalken laufen soll
    $hProgress2 = GUICtrlGetHandle($progressBar2) ; Erlaubt das "Händling" des Prozessbalkens
    _GUICtrlStatusBar_EmbedControl ($StatusBar1, 3, $hProgress2) ; legt fest, in welcher Spalte der zweite Prozessbalken laufen soll
    GUICtrlSetColor($ProgressBar1,32250); setzt die Farbe für den ersten "Laufbalken"
    #endregion Statusbar Seite 2

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

    #region -Seite 3
    ; Erzeugen der dritten Seite
    $Seite03 = GUICreate($ProjectName , 641, 481, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST) ;, $WS_EX_APPWINDOW
    $Ueberschrift = GUICtrlCreateLabel($ProjectName & " Installation", 30, 30, 396, 36)
    GUICtrlSetFont(-1, 20, 800, 0, "Arial")
    $Logo = GUICtrlCreatePic("C:\Temp\Install\PDFMailer-V4\Logo_klein.gif", 430, 15, 200, 41, BitOR($SS_NOTIFY, $WS_GROUP))
    $GraphicS3_1 = GUICtrlCreateGraphic(20, 100, 600, 290)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetColor(-1, 0x000000)
    $S3_Zeile01 = GUICtrlCreateLabel("Die Software wurde erfolgreich installiert.", 30, 110, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile02 = GUICtrlCreateLabel("Viel Spaß beim Benutzen des Programms.", 30, 170, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile03 = GUICtrlCreateLabel("Info:", 30, 230, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile04 = GUICtrlCreateLabel("Sie können jetzt ISO Zertifizierte PDF/A Dateien erzeugen.", 30, 260, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile05 = GUICtrlCreateLabel("_______________", 30, 300, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile06 = GUICtrlCreateLabel("Informationslogistik", 30, 320, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile07 = GUICtrlCreateLabel("Team System", 30, 340, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $S3_Zeile08 = GUICtrlCreateLabel("wu2", 30, 360, 570, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $BeendenButton = GUICtrlCreateButton("Beenden", 270, 410, 80, 50, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUICtrlSetOnEvent($BeendenButton, "_AdminExit")
    #endregion - Seite 3

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

    ;===============================================================
    ;===============================================================

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

    #region - Startet erste Seite
    GUISetState(@SW_SHOW, $Seite01)
    #endregion - Startet erste Seite

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

    ;===============================================================
    ;===============================================================

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

    #region - Schleife
    While 1
    Sleep (1000)
    WEnd
    Exit
    #endregion - Schleife

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

    ;===============================================================
    ;===============================================================

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

    #region - Funktion Seite 1
    Func Seite01_OK()
    Sleep(1000)
    GUISetState( @SW_SHOW, $Seite02 ) ;öffnet Seite02
    GUISetState( @SW_HIDE, $Seite01 ) ;versteckt Seite01
    Sleep(2000)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installations Status Gesamt", 4)
    $Progress1 = 0 ; setzt die erste Statusbar auf 0
    $Progress2 = 0 ; setzt die zweite Statusbar auf 0
    ;~ ***********************
    Func_Install()
    ;~ ***********************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation beendet", 4)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation beendet", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 100)
    Sleep(2000)
    GUISetState( @SW_SHOW, $Seite03 ) ;öffnet Seite03
    GUISetState( @SW_HIDE, $Seite02 ) ;versteckt Seite02
    EndFunc ;==>Seite01_OK
    #endregion - Funktion Seite 1

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

    ;---------------------------------------------------------------

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

    #region - Funktion Seite 3
    Func Neustart()
    Sleep(500)
    ProgressOn("Neustart", "Laufzeit", "0 Sek bis Neustart")
    For $i = 1 To 60 Step 1
    Sleep(1000)
    ProgressSet($i, 60 - $i & " Sekunden bis Neustart")
    Next
    ProgressSet(100, "Laufzeit", "Neustart wird ausgelöst")
    Sleep(1000)
    ProgressOff()
    Shutdown(2)
    Exit
    EndFunc ;==>Neustart

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

    ;---------------------------------------------------------------

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

    Func Neustart2()
    Sleep (2000)
    Shutdown (2)
    Exit
    EndFunc ;==>Neustart2
    #endregion - Funktion Seite 3

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

    ;===============================================================
    ;===============================================================

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

    #region - Installationen
    ;~ ***************************************************
    Func Func_Install()
    ;===============================================================
    GUICtrlSetData($Feld_Fertig, "Versionskontrolle")
    _GUICtrlStatusBar_SetText ($StatusBar1, "Versionskontrolle", 0)
    GUICtrlSetData($Versionkontrolle_Fertig, "läuft")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 10)
    $i = 0
    ; Abfragen V3
    ; ----------------------------------------------------------
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{528EC8F4-1C19-41BA-80A1-0B5EA21BA628}","DisplayName")
    If @error = 1 then ; Wenn keine Alte Version gefunden wurde, dann 2
    $i = $i + 2
    Else ; Wenn Alte Version gefunden, dann Wert auf 4
    $i = $i + 4
    GUICtrlSetData ($ProgressBar1, $Progress1 + 50)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 20)
    EndIf
    Sleep(1000)
    ; Abfragen V4
    ; ----------------------------------------------------------
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{01310914-E3B8-40E8-BCF7-9C42E0639A43}","DisplayName")
    If @error = 1 then ; Wenn keine Neue Version gefunden wurde, dann Wert 8
    $i = $i + 8
    Else ; Wenn Neue Version gefunden wurde, dann Wert 16
    $i = $i + 16
    EndIf
    Sleep(500)
    _GUICtrlStatusBar_SetText ($StatusBar1, "Versionskontrolle beendet", 0)
    GUICtrlSetData($Versionkontrolle_Fertig, "fertig")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 30)
    Sleep(2000)
    ; ******************** Verarbeitung ************************
    Select
    Case $i = 10 ; Alt Nein - Neu Nein / Install
    ; ************ Kein Deinstallation *****************
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    GUICtrlSetData($Feld_Fertig, "Deinstallation nicht nötig")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    Sleep(5000)
    ; ************ Installation *****************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 60)
    GUICtrlSetData($Install_Fertig, "läuft")
    GUICtrlSetData($Feld_Fertig, "Installation Version 4.1.40")
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 20)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 70)
    Sleep(500)
    $Return = RunWait("msiexec /i ""C:\Temp\Install\PDFMailer-V4\pdfmailer4de.msi"" /qn", "", @SW_HIDE)
    If @error = 1 Or ($Return > 1600 And $Return < 1650 ) then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL" & @CRLF & "MSI-Fehler-Code: " & $Return); bei Fehler MSGBOX und Exit
    Sleep(5000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 60)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(5000)
    ShellExecuteWait("C:\Temp\Install\PDFMailer-V4\einst.bat", "", @SW_HIDE)
    If @error = 1 then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL"); bei Fehler MSGBOX und Exit
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 90)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 90)
    Sleep(2000)
    ; ******************************************************
    Case $i = 12 ; Alt Ja - Neu Nein / Deinstall Alt + Install Neu
    ; ************ Deinstallation ************************
    Sleep(2000)
    GUICtrlSetData($Feld_Fertig, "Alte Version wird gelöscht")
    GUICtrlSetData($ALTloeschen_Fertig, "läuft")
    _GUICtrlStatusBar_SetText ($StatusBar1, "Deinstallation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 20)
    Sleep(500)
    ProcessClose("EXCEL.EXE") ; Excel beenden falls geöffnet
    $PID = ProcessExists("EXCEL.EXE")
    If $PID Then ProcessClose($PID)
    sleep(500)
    ProcessClose("WINWORD.EXE") ; Word beenden falls geöffnet
    $PID = ProcessExists("WINWORD.EXE")
    If $PID Then ProcessClose($PID)
    Sleep(500)
    ProcessClose("POWERPNT.EXE") ; Powerpoint beenden falls geöffnet
    $PID = ProcessExists("POWERPNT.EXE")
    If $PID Then ProcessClose($PID)
    Sleep(500)
    ProcessClose("GEngine.EXE") ; PDFMAILER beenden falls geöffnet
    $PID = ProcessExists("GEngine.EXE")
    If $PID Then ProcessClose($PID)
    sleep(500)
    ProcessClose("PDFMailerApp.EXE") ; PDFMAILER beenden falls geöffnet
    $PID = ProcessExists("PDFMailerApp.EXE")
    If $PID Then ProcessClose($PID)
    sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    Sleep(500)
    RunWait("C:\WINDOWS\system32\msiexec.exe" & " /x{528EC8F4-1C19-41BA-80A1-0B5EA21BA628}" & " /qb" & " /norestart", "", @SW_HIDE)
    Sleep(5000)
    ; ************************************************
    ; ************************************************
    ; ------------------------------------------------
    ;~ Dim $oFSO = ObjCreate('Scripting.FileSystemObject') ; muß global deklariert werden!! ==> s. Skriptanfang
    ;~ Dim $Path = 'D:\Profile\Dokumente und Einstellungen'
    ;~ Dim $str = ''
    _ShowSubFolders($oFSO.GetFolder($Path))

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

    ;~ func _ShowSubFolders($Folder) ############ Funktionen können nicht in Funktionen erstellt werden!! #######
    ;~ For $Subfolder in $Folder.SubFolders
    ;~ $strPath &= $Subfolder.Path & @LF
    ;~ _ShowSubFolders($Subfolder)
    ;~ Next
    ;~ EndFunc
    $aAllFolder = StringSplit($strPath, @LF)
    For $su = 1 To UBound($aAllFolder) -1
    If StringInStr($aAllFolder[$su], 'gotomaxx') And $oFSO.FolderExists($aAllFolder[$su]) Then _
    $oFSO.DeleteFolder($aAllFolder[$su])
    Next

    ; ------------------------------------------------
    ; ************************************************
    ; ************************************************
    Sleep(5000)
    If FileExists("c:\temp\install\PDFMailer") Then DirRemove("c:\temp\install\PDFMailer", 1) ; Löscht Verzeichniss des alten PDFMailers
    Sleep(2000)
    If FileExists("C:\Programme\gotomaxx") Then DirRemove("C:\Programme\gotomaxx", 1) ; Löscht Verzeichniss des alten PDFMailers
    Sleep(2000)
    RunWait("cscript c:\windows\system32\prnmngr.vbs -d -p ""maxx PDFMAILER Standard""","", @SW_HIDE) ; Löscht den Drucker, falls er nicht Deinstalliert wurde
    Sleep(2000)
    GUICtrlSetData($Feld_Fertig, "Alte Version gelöscht")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 50)
    Sleep(2000)
    ; ************ Installation *****************
    _GUICtrlStatusBar_SetText ($StatusBar1, "Installation", 0)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 10)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 60)
    GUICtrlSetData($Install_Fertig, "läuft")
    GUICtrlSetData($Feld_Fertig, "Installation Version 4.1.40")
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 20)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 70)
    Sleep(500)
    $Return = RunWait("msiexec /i ""C:\Temp\Install\PDFMailer-V4\pdfmailer4de.msi"" /qn", "", @SW_HIDE)
    If @error = 1 Or ($Return > 1600 And $Return < 1650 ) then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL" & @CRLF & "MSI-Fehler-Code: " & $Return); bei Fehler MSGBOX und Exit
    Sleep(5000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 60)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(5000)
    ShellExecuteWait("C:\Temp\Install\PDFMailer-V4\einst.bat", "", @SW_HIDE)
    If @error = 1 then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL"); bei Fehler MSGBOX und Exit
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 90)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 90)
    Sleep(2000)
    ; ******************************************************
    Case Else ; Nix machen
    ; ************ Kein Deinstallation *****************
    Sleep(2000)
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 40)
    GUICtrlSetData($Feld_Fertig, "Deinstallation nicht nötig")
    GUICtrlSetData($ALTloeschen_Fertig, "fertig")
    Sleep(3000)
    ; ************ Kein Installation *******************
    GUICtrlSetData($Install_Fertig, "fertig")
    GUICtrlSetData($Feld_Fertig, "PDFMailer V4 schon installiert")
    GUICtrlSetData ($ProgressBar1, $Progress1 + 100)
    GUICtrlSetData ($ProgressBar2, $Progress2 + 80)
    Sleep(3000)
    ; ******************************************************
    EndSelect

    ; **********************************************************
    EndFunc

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

    ;~ ***************************************************
    ;~ ****** Suchfunktion ******
    Func _ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    $strPath &= $Subfolder.Path & @LF
    _ShowSubFolders($Subfolder)
    Next
    EndFunc
    ;~ ***************************************************

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

    #region - Generelle Funktionen
    ;******** Beenden mit Nachfrage = ESC oder Abbrechen oder auf X im Fenster
    Func _Exit()
    $Box = MsgBox(262452, "Installation abbrechen", "Wenn Sie jetzt die Installation abbrechen, wird sie beim nächsten Neustart wieder gestartet." & @CRLF & @CRLF & "Wirklich beenden?")
    If $Box = 6 Then
    Exit
    EndIf
    EndFunc ;==>_Exit
    ;---------------------------------------------------------------

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

    ;******** Skript per Hotkey beenden = Strg + Alt + X **********
    Func _AdminExit()
    Exit
    EndFunc ;==>_AdminExit
    ;---------------------------------------------------------------

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

    ;******** Skript per Hotkey pausieren = Pause Taste **********
    Func TogglePause()
    $Paused = Not $Paused
    While $Paused
    Sleep(100)
    ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")
    EndFunc ;==>TogglePause
    ;---------------------------------------------------------------

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

    ;******** Info *************************************************
    Func Info() ; Zeigt Hilfe Fenster an
    MsgBox(262208, "Info", $ProjectName & " Installation" & @CRLF & "Version: " & $Version & @CRLF & "Erstellt: " & $Erstellt & @CRLF & "Ersteller: " & $Erteller & @CRLF & "Abteilung: " & $Abteilung& @CRLF & "Mit Freundlicher Unterstützung des AutoIT Forums" & @CRLF & "Special THX an BugFix und Progandy")
    EndFunc ;==>Info
    ;---------------------------------------------------------------

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

    ;******** Hilfe ************************************************
    Func Hilfe()
    MsgBox(262176, "Hilfe", "Haben Sie Fragen zu dieser Installation," & @CRLF & "dann rufen Sie bitte den Helpdesk " & @CRLF & "" & @CRLF & "unter Tel. 2000 an.")
    EndFunc ;==>Hilfe

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

    #endregion - Generelle Funktionen
    ;---------------------------------------------------------------

    [/autoit]
  • Bist ne Bombe

    Funktioniert super.


    Werde auf die neue Version umsteigen, sobalt alles so läuft wie ich will.
    Hab schon mal einige Script umändern müssen, nur weil ich die Version aktualliesierte. Das will ich nicht nochmal machen :)

    Aber danke für den Hinweis, dass es eine neue Version gibt :)


    Das Problem ist ja jetzt gelöst, aber.. vielleicht könntest du mir nochmals behilflich sein.

    Ich würde gerne noch was einbauen und zwar folgendes:
    Nachdem er kontrolliert hat, ob die Software schon installiert ist oder nicht, soll er entsprechend die letzte Seite anpassen. D.h. er soll schreiben, wenn installiert wurde, dann "wurde erfolgreich installiert" (So wie jetzt ist). War es schon installiert, dann "wurde schon installiert".

    Habe das schon mal probiert, wenn ich erst ein $schonfertig = "" setze und es dann entsprechend der Möglichkeiten mit "erfolgreich" oder "schon" fülle. Aber irgendwie will das nicht.
    Gib mir mal bitte einen Tip was in diesem Fall sinnvoll wäre.

    Danke

  • so hab ich es ja gemacht.
    bzw. so soll es aussehen.

    1. als erstes erstelle ich die Variable $schonFertig= ""
    2. lass ich die Seite 1 und Seite 2 erstellen.
    3. läuft die Verarbeitung und entsprechend der Installationmöglichkeit soll er $schonFertig = "schon" oder $schonFertig = "erfolgreich" ändern
    4. lasse ich die Seite 3 anzeigen, incl. des hoffentlich gesetzten Wertes
    ( $S3_Zeile01 = GUICtrlCreateLabel("Die Software wurde & $schonFertig & "installiert.", 30, 110, 570, 22)

    Er füllt mir aber leider die Variable $schonFertig nicht.

    Liegt es etwa daran, dass die Seite 3 am Anfang des Sciptes steht, so dass er sie schon abarbeitet, bevor er
    die späteren Funktionen aufruft?

    Wenn dem so ist, wie kann ich es dann geschickt lösen?

    • Offizieller Beitrag

    Dein Label ($S3_Zeile01) hat nach der Erstellung folgenden Inhalt: "Die Software wurde" & $schonFertig & "installiert." - wobei $schon Fertig ein Leerstring ist.
    Wenn du der Variablen $schonFertig einen neuen Inhalt zuweist, weiß das aber dein Label nicht. Du mußt den Inhalt des Labels jetzt mit GUICtrlSetData neu festlegen. Bei den 3 Worten würde ich auf Variablen verzichten:
    - Label ohne Text erstellen
    - Fall1: GUICtrlSetData($Label, 'Text1')
    - Fall2: GUICtrlSetData($Label, 'Text2')