2 scripte zusammenfügen

  • Hallo,

    habe nun wieder ein kleines Problem. Habe 2 verschiedene Scripte erstellt. Das erste ist eine Installer Datei, die dann nach erfolgreicher Installation herunter fahren muß. Soweit so gut.
    Mit meinem anderen Script erfolgt der Programmzugriff und die Menüauswahl.
    Wie kann ich nun die beiden Scripte so kombinieren, das nicht alles auf einmal ausgeführt wird, sondern
    der zweite Teil erst nach dem Hochfahren angesprochen wird ?

    Bin so ein bischen am verzweifeln.

    Kann mir jemand Helfen ?

    Gruß Thami :rolleyes: :P

  • du könntest dich eines Startparameters bedienen.
    Vor dem Neustart erstellst du einen Autostart Eintrag für das Skript und hängst einen Parameter an. Im Skript selbst prüfst du per If $CMDLINE[0] ob der Parameter vorhanden ist oder nicht und führst dementsprechend den passenden Skriptteil aus.

  • Du gehst wie folgt vor.
    1. beim Aufruf prüfen ob schon "installiert/configuriert" also durch vorhandensein einer Ini von dir oder einem regkey
    Fileexists Iniread Regread
    2. Beim Ende des Installers dein Program als runonce in die registry eintragen, so startet es erneut du meinst doch den Windowsstart oder

    Beim erneuten Aufruf sollte er ja wissen das es installiert ist und normallaufen.
    Du kannst noch als Paramater /config einbauen um die Konfiguration erneut anzustossen.

    Den Installer packst Du in eine Funktion die dann nur bei /config oder Erstaufruf startet.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Hallo Dietmar,

    vielen Dank für die schnelle Antwort. Ich habe zwar deinen Text verstanden, kann ihn aber überhaupt nicht umsetzen.
    Kannst Du mir eventuell ein paar script Zeilen zum denkanstoß senden ? Denn die umsetzung ist für mich sehr sehr schwierig.

    Gruß thami :rolleyes:

  • ok mal ein Auszug aus einem altem Script

    [autoit]

    Dim $setupdir
    Dim $scriptdir = @ScriptDir
    If StringRight($scriptdir, 1) <> "\" Then $scriptdir &= "\"

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

    If Not FileExists($scriptdir & "Bin\dd.exe") Then
    _Setup()
    Else
    $setupdir = $scriptdir
    EndIf

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

    If Not FileExists($setupdir & "Bin\dd.exe") Then FileInstall("C:\Autoit\Eigene Scripte\Dietmar\DD-Gui\Bin\dd.exe", $setupdir & "Bin\dd.exe")
    If Not FileExists($setupdir & "Bin\dd-gui.ini") Then FileInstall("C:\Autoit\Eigene Scripte\Dietmar\DD-Gui\Bin\dd-gui.ini", $setupdir & "Bin\dd-gui.ini")
    If Not FileExists($setupdir & "Bin\diskio.dll") Then FileInstall("C:\Autoit\Eigene Scripte\Dietmar\DD-Gui\Bin\diskio.dll", $setupdir & "Bin\diskio.dll")
    If Not FileExists($setupdir & "Bin\dd-icons.dll") Then FileInstall("C:\Autoit\Eigene Scripte\Dietmar\DD-Gui\Bin\dd-icons.dll", $setupdir & "Bin\dd-icons.dll")
    If Not FileExists($setupdir & "Media\utopiawi.wav") Then FileInstall("C:\Autoit\Eigene Scripte\Dietmar\DD-Gui\Media\utopiawi.wav", $setupdir & "Media\utopiawi.wav")
    If Not FileExists($setupdir & "Media\linux.jpg") Then FileInstall("C:\Autoit\Eigene Scripte\Dietmar\DD-Gui\Media\linux.jpg", $setupdir & "Media\linux.jpg")
    If Not FileExists($setupdir & "Media\dd For windows.htm") Then FileInstall("C:\Autoit\Eigene Scripte\Dietmar\DD-Gui\Media\dd For windows.htm", $setupdir & "Media\dd For windows.htm")

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

    If $setupdir <> $scriptdir Then
    FileCopy(@ScriptFullPath,$setupdir & "DD-Gui.exe")
    FileCreateShortcut($setupdir & "DD-Gui.exe",@DesktopDir & "\DD-Gui.lnk")
    FileCreateShortcut($setupdir & "DD-Gui.exe",@StartMenuCommonDir & "\DD-Gui.lnk")
    Run($setupdir & "DD-Gui.exe")
    Exit
    EndIf

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

    Func _Setup()
    If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
    If _Language() = "German" Then
    $iMsgBoxAnswer = MsgBox(33,"DD-Gui Installationsprüfung","DD-Gui wird zum ersten Mal gestartet." & @CRLF & @CRLF & "Möchten Sie DD-Gui installieren?" & @CRLF & @CRLF & "Es werden nur Dateien in das Zielverzeichnis kopiert," & @CRLF & "es werden keine Dateien registriert." & @CRLF & @CRLF & "[OK] startet die Installation und anschliessend DD-Gui" & @CRLF & "[ABBRECHEN] beendet das Programm. ")
    Else
    $iMsgBoxAnswer = MsgBox(33,"DD-Gui Installations check","DD-Gui starts the first time." & @CRLF & @CRLF & "Would you like to install DD-Gui?" & @CRLF & @CRLF & "Only files will copied to your target dir," & @CRLF & "the files won`t be registerd. " & @CRLF & @CRLF & "[OK] starts the installation and afterwards DD-Gui" & @CRLF & "[CANCEL] terminate this program. ")
    EndIf

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

    Select
    Case $iMsgBoxAnswer = 1 ;OK
    If _Language() = "German" Then
    $setupdir = FileSelectFolder("Bitte Zielverzeichnis erzeugen/auswählen.", "",1)
    Else
    $setupdir = FileSelectFolder("Create or choose a folder.","",1)
    EndIf
    If @error = 1 Then
    _Setup()
    Else
    If StringRight($setupdir, 1) <> "\" Then $setupdir &= "\"
    If Not FileExists($setupdir & "Bin") Then DirCreate($setupdir & "Bin")
    If Not FileExists($setupdir & "Media") Then DirCreate($setupdir & "Media")
    If Not FileExists($setupdir & "Help") Then DirCreate($setupdir & "Help")
    EndIf
    Return $setupdir
    Case $iMsgBoxAnswer = 2 ;Cancel
    Exit
    EndSelect
    EndFunc

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

    Mittlerweile sind die Texte in ner Ini und hole mir das passende Array in Abhängigkeit von der Funktion _Language().
    Aber das soll dich nicht stören. Ich habe die benötigten Dateien in die Exe integriert, beim ersten Aufruf prüfe ich ob schon alles da liegt.
    Wenn nein kommt die Funktion Setup, hier kann man dann ein Installverzeichnis auszuwählen. Abschliessend werden noch Verknüpfungen angelegt und dieselbe Exe die man ursprünglich gestartet hat im Installordner gestartet und das laufende Programm beendet.
    Wenn das Setup nicht kommt werden zumindest fehlende Dateien repariert. :)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    3 Mal editiert, zuletzt von Dietmar (12. September 2010 um 21:48)