Ich hab ein Installations-Assistent programmiert und jetzt habe ich ein Problem. Und zwar wenn ich auf Weiter klicke soll die nächste Seite angezeigt werden, die Titelleiste soll geleich bleiben. Könnt Ihr mir helfen
Installations-Assistent
-
DJMANU -
14. August 2006 um 20:25 -
Geschlossen -
Erledigt
-
-
In dem Skript habe ich Galenda und die Version 2.00 nur als Beispielt genommen.
-
- Offizieller Beitrag
Hallo!
Die einfachste Möglichkeit ist mit einem Formdesigner (z.B. Koda) alle benötigten Dialoge erstellen und dann schritt für schritt den ensprechenden Dialog anzeigen. Du kannst aber auch ein Dialog mit einem Tabcontrol erzeugen (wie z.B. Einstellungendialog bei Galenda).
-
Ich hab das Skript bereits geschrieben, ich brauch nur noch jemand der mir die einzelne Fenster mit einander verknüpft. Wenn ich beim StartGUI auf Weiter klicke soll StartGUI verschwinden und LicenseGUI auftauchen und zwar so, das man denkt das wär eine GUI
-
- Offizieller Beitrag
Ich kann mir deinen Code morgen mal anschauen, aber hier ist ein Beispiel wei man das lösen könnte:
Spoiler anzeigen
Code
Alles anzeigen#include <GUIConstants.au3> $frmInst1 = GUICreate("Installationsmanager", 393, 274, 193, 115) GUICtrlCreateLabel("Fenster 1", 64, 32, 114, 33) $frmInst1_btnNext = GUICtrlCreateButton("> &Weiter", 296, 232, 75, 25, 0) $frmInst2 = GUICreate("Installationsmanager", 393, 274, 193, 115) GUICtrlCreateLabel("Fenster 2", 64, 32, 114, 33) $frmInst2_btnPrev = GUICtrlCreateButton("< &Zurück", 208, 232, 75, 25, 0) $frmInst2_btnNext = GUICtrlCreateButton("> &Weiter", 296, 232, 75, 25, 0) $frmInst3 = GUICreate("Installationsmanager", 393, 274, 193, 115) GUICtrlCreateLabel("Fenster 3", 64, 32, 114, 33) $frmInst3_btnPrev = GUICtrlCreateButton("< &Zurück", 208, 232, 75, 25, 0) $frmInst3_btnNext = GUICtrlCreateButton("> &Weiter", 296, 232, 75, 25, 0) $frmInst4 = GUICreate("Installationsmanager", 393, 274, 193, 115) GUICtrlCreateLabel("Fenster 4", 64, 32, 114, 33) $frmInst4_btnPrev = GUICtrlCreateButton("< &Zurück", 208, 232, 75, 25, 0) $frmInst4_btnNext = GUICtrlCreateButton("> &Weiter", 296, 232, 75, 25, 0) $frmInst5 = GUICreate("Installationsmanager", 393, 274, 193, 115) GUICtrlCreateLabel("Fenster 5", 64, 32, 114, 33) $frmInst5_btnPrev = GUICtrlCreateButton("< &Zurück", 208, 232, 75, 25, 0) $frmInst5_btnNext = GUICtrlCreateButton("> &Weiter", 296, 232, 75, 25, 0) $frmInst6 = GUICreate("Installationsmanager", 393, 274, 193, 115) GUICtrlCreateLabel("Fenster 6", 64, 32, 114, 33) $frmInst6_btnPrev = GUICtrlCreateButton("< &Zurück", 208, 232, 75, 25, 0) $frmInst6_btnNext = GUICtrlCreateButton("> &Weiter", 296, 232, 75, 25, 0) $frmInst7 = GUICreate("Installationsmanager", 393, 274, 193, 115) GUICtrlCreateLabel("Fenster 7", 64, 32, 114, 33) $frmInst7_btnPrev = GUICtrlCreateButton("< &Zurück", 208, 232, 75, 25, 0) $frmInst7_btnReady = GUICtrlCreateButton("&Fertig", 296, 232, 75, 25, 0) GUISetState(@SW_SHOW,$frmInst1) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $frmInst1_btnNext GUISetState(@SW_SHOW,$frmInst2) GUISetState(@SW_HIDE,$frmInst1) case $frmInst2_btnPrev GUISetState(@SW_SHOW,$frmInst1) GUISetState(@SW_HIDE,$frmInst2) Case $frmInst2_btnNext GUISetState(@SW_SHOW,$frmInst3) GUISetState(@SW_HIDE,$frmInst2) case $frmInst3_btnPrev GUISetState(@SW_SHOW,$frmInst2) GUISetState(@SW_HIDE,$frmInst3) Case $frmInst3_btnNext GUISetState(@SW_SHOW,$frmInst4) GUISetState(@SW_HIDE,$frmInst3) case $frmInst4_btnPrev GUISetState(@SW_SHOW,$frmInst3) GUISetState(@SW_HIDE,$frmInst4) Case $frmInst4_btnNext GUISetState(@SW_SHOW,$frmInst5) GUISetState(@SW_HIDE,$frmInst4) case $frmInst5_btnPrev GUISetState(@SW_SHOW,$frmInst4) GUISetState(@SW_HIDE,$frmInst5) Case $frmInst5_btnNext GUISetState(@SW_SHOW,$frmInst6) GUISetState(@SW_HIDE,$frmInst5) case $frmInst6_btnPrev GUISetState(@SW_SHOW,$frmInst5) GUISetState(@SW_HIDE,$frmInst6) Case $frmInst6_btnNext GUISetState(@SW_SHOW,$frmInst7) GUISetState(@SW_HIDE,$frmInst6) case $frmInst7_btnPrev GUISetState(@SW_SHOW,$frmInst6) GUISetState(@SW_HIDE,$frmInst7) Case $frmInst7_btnReady GUISetState(@SW_HIDE,$frmInst7) MsgBox(0,"Fertig","Bye bye!") Exit EndSwitch WEnd
-
Ich werd im Skript auf jeden Fall deinen Namen reinschreiben
-
Ich such für den Installations-Assistent noch Leute die mitprogrammieren wollen. Alles was noch offen ist, könnt ihr euch melden.
-
Hier ist die ToDo-Liste:
; ---------------------------------------------------------------------------; Todo:
; - Startmenü-Einträge
; -> Shortcuts erstellen mit Funktion FileCreateShortcut
; - Offen; - Zusatzdateien
; -> Zusatzdateien beim Start der Installation in den Temp-Ordner
; verschieben und bei InstallGUI in den Programm-Ordner kopieren. Am
; Ende der Installation Temp-Ordner löschen
; - Manuel Kübler; - Lizenzvereinbarung
; -> Edit gegen Benutzereingaben sperren
; - Offen; - Installationsdateien
; -> Dateien ins Programm einbinden mit Funktion FileInstall (Done.)
; -> Dateien vom Temp-Ordner in den Programm-Ordner während der
; Installations-Routine kopieren
; - Manuel Kübler; - Installations-Routine
; -> Label erstellen, das man sieht was gerade gemacht wird.
; -> Forschrittsbalken zum Laufen bringen. (Done.)
; -> Button "Abbrechen" anklickbar machen
; - Offen; Done:
; - GUIs
; -> Alle GUIs miteinander verknüpfen, das es aussieht als wäre es eine GUI
; - bernd670 (Done.); - Registry
; -> Programm-Einträge anlegen
; - Manuel Kübler (Done.); - Uninstaller
; -> Programm zum Deinstallieren des Programms
; - Manuel Kübler (Done.)
; ---------------------------------------------------------------------------Ich such noch Leute die mitprogrammieren wollen. Ihr seht es oben in der Liste was alles noch gemacht werden muss
-
Zitat
Original von DJMANU
Hier ist die ToDo-Liste:
; ---------------------------------------------------------------------------
; - Lizenzvereinbarung
; -> Edit gegen Benutzereingaben sperren
; - Offen
; ---------------------------------------------------------------------------Ich such noch Leute die mitprogrammieren wollen. Ihr seht es oben in der Liste was alles noch gemacht werden muss
Moin DJMANU,
du kannst die EditBox mit $ES_READONLY gegen eingaben sperren!
Würde in deinem Fall dann so aussehen:
Code$id_edit1 = GUICtrlCreateEdit(FileRead(@ScriptDir & "\license.txt"), 20, 70, 460, 190, $WS_VSCROLL + $ES_READONLY)
Mfg
Analyzer
-
Moin,
hätte vielleicht noch eine kleine Verbesserung für deine Func _setup_install() und _setup_uninstall().
Anstatt des langen Codes kannst du das auch so regeln:
_setup_install()
Code
Alles anzeigenFunc _setup_install() For $i = 1 to 100 Step +1 GUICtrlSetData($id_progress1, $i) Sleep(1000) Next GUISetState(@SW_SHOW, $GUI_Setup_End) EndFunc ;==>_setup_install
_setup_uninstall()
Code
Alles anzeigenFunc _setup_install() For $i = 1 to 100 Step +1 GUICtrlSetData($id_progress1, $i) Sleep(1000) Next GUISetState(@SW_SHOW, $GUI_Setup_End) EndFunc ;==>_setup_uninstall
Es ist kein muss, aber schöner für die Übersicht und macht dein Script wieder etwas kleiner
Mfg
Analyzer
-
Danke.
; ---------------------------------------------------------------------------
; Todo:
; - Kommandozeile
; -> /quiet = Hintergrundmodus (keine Benutzereingabe bzw. Bildschirmausgabe)
; -> /a = Administrator Installation
; -> /uninstall = Deinstalliert das Programm
; - Offen; - Installations-Routine
; -> Label erstellen, das man sieht was gerade gemacht wird. (Done.)
; -> Forschrittsbalken zum Laufen bringen. (Done.)
; -> Button "Abbrechen" anklickbar machen
; - Offen; Done:
; - GUIs
; -> Alle GUIs miteinander verknüpfen, das es aussieht als wäre es eine GUI
; - bernd670 (Done.); - Registry
; -> Programm-Einträge anlegen
; - Manuel Kübler (Done.); - Uninstaller
; -> Programm zum Deinstallieren des Programms
; - Manuel Kübler (Done.); - Lizenzvereinbarung
; -> Edit gegen Benutzereingaben sperren
; - Manuel Kübler (Done.); - Installationsdateien
; -> Dateien ins Programm einbinden mit Funktion FileInstall
; -> Dateien vom Temp-Ordner in den Programm-Ordner während der
; Installations-Routine kopieren
; - Manuel Kübler (Done.); - Startmenü-Einträge
; -> Shortcuts erstellen mit Funktion FileCreateShortcut
; - Manuel Kübler (Done.)
; ---------------------------------------------------------------------------Neu ToDo-Liste
Edit peethebee: Zwei Posts hintereinander nur ins begründeten Füllen, bitte (2 längere Posts mit sehr unterscheidlichen Themen)
-
peethebee Hast du vielleicht eine Lösung für den Abbrechen-Button gefunden
-
- Offizieller Beitrag
erstens kannst du versuchen, ob die @GUI_CTRLID auch in deiner Kopierfunktion aktualisiert wird
zweitens könntest du in deiner Kopierfunktion eine Dateiiliste anlegen und die Funktion dann beenden. Dann könntest du in der While-Schleife checken, ob es was zu kopieren gibt, wenn ja eine Datei kopieren und aus der Liste löschen. Dann wird die Nachricht vom Abbrechen-Button verarbeitet und danach die nächste Datei aus der Liste kopiert.
peethebee