Seite 7 von 54

Verfasst: 04.08.2006 13:26
von Thorsten1867
ts-soft hat geschrieben:Wie wäre es mit Zip als alternative Packformat, so das man es auch normal entpacken kann (SFX-Setup). Hierfür vielleicht einen separaten Wizzard verwenden, damit es nicht unnötig grösser wird.
Alle Versuche der Verwendung des ZIP-Formats sind fehlgeschlagen:
- Der Append-Befehl in PureZIP zerstört die EXE-Datei mit dem Installer???
- Beim manuellen Anhängen des ZIP-Archives an die EXE, ist nach dem Entpacken die eingebettete ZIP-Datei mit den Programmdateien nicht mehr gültig und somit unentpackbar.

Also habe ich frustriert aufgegeben, nachdem die Probleme momentan unlösbar zu sein scheinen. :cry:

Verfasst: 04.08.2006 13:29
von Thorsten1867
Neue Version 0.3.2
- gleichzeitiges Erzeugen eines ZIP-Archives mit den Programmdateien möglich

Verfasst: 04.08.2006 14:05
von mk-soft
Sehr gute arbeit bis jetzt :allright: :allright: :allright:

Wird mein neues Standard Programm um Setups zu erzeugen. Ausführliche Hilfe kommt wohl erst später.

FF :wink:

Verfasst: 04.08.2006 17:29
von ts-soft
Hallo Thorsten1867

Die ZIP-Version auf der Projektpage ist defekt! Die Setup-Version geht aber

Bei der Auswahl des Ortes für die Verknüpfung werden mir nur die Ordner
des Users angeboten, einige Ordner sind aber nur bei den Ordnern für alle
User vorhanden. Das beste wäre es den Inhalt beider Ordner zusammen
darzustellen, und notfalls den Ordner zu erstellen. (PureBasic kann ich bei
mir zum Beispiel nicht auswählen)

PS: Zum testen bin ich noch nicht gekommen

Gruß

Thomas

Verfasst: 04.08.2006 17:48
von Thorsten1867
Habe die Zip-Datei nochmal hochgeladen.

Das StartMenü ist der Benutzer-Ordner (#CSIDL_PROGRAMS). Habe bisher keine Idee, wie man beide Ordner (Benutzer/alle Benutzer) zusammenfassen kann.

Verfasst: 04.08.2006 18:07
von ts-soft
Thorsten1867 hat geschrieben:Habe die Zip-Datei nochmal hochgeladen.

Das StartMenü ist der Benutzer-Ordner (#CSIDL_PROGRAMS). Habe bisher keine Idee, wie man beide Ordner (Benutzer/alle Benutzer) zusammenfassen kann.

Code: Alles auswählen

Procedure.s GetSpecialFolderPath(CSIDL.l)
  Protected Path.s = Space(#MAX_PATH * SizeOf(Character))
  Protected Library = OpenLibrary(#PB_Any, "shell32.dll")
  If Library
    CompilerIf #PB_Compiler_Unicode
      CallFunctionFast(GetFunction(Library,"SHGetSpecialFolderPathW"), 0, @Path, CSIDL, 0)
    CompilerElse
      CallFunctionFast(GetFunction(Library,"SHGetSpecialFolderPathA"), 0, @Path, CSIDL, 0)
    CompilerEndIf
    CloseLibrary(Library)
  EndIf
  If Right(Path, 1) <> "" : Path + "" : EndIf
  ProcedureReturn Path
EndProcedure

Debug GetSpecialFolderPath(#CSIDL_COMMON_PROGRAMS)
Durch diesen iterieren, durch den anderen iterieren und in eine Linklist zusammenfassen. Beim erstellen nur drauf achten, das der Ordner existiert, bzw. erstellen. In der Windows-Ansicht sind die auch einfach nur so zusammengefaßt, obwohl es 2 versch. Ordner sind :wink:

Erstellen aber am besten in den Ordner des Users!!! Alleine schon wegen der Rechte.

Verfasst: 04.08.2006 18:26
von Thorsten1867
Das war die fehlende Systemvariable. :wink:

Da wären einige Änderungen nötig. Man müsste dann auch beim Erstellen festlegen können, ob sich ein Startmenü-Eintrag auf den Benutzer oder alle Benutzer bezieht.
Ich werde das für ein nächstes Update ins Auge fassen. :)

Verfasst: 04.08.2006 18:31
von ts-soft
Thorsten1867 hat geschrieben:Das war die fehlende Systemvariable. :wink:
Naja, die sind in PB4 bereits vordefiniert, mußt also nur Autovervollständigen
aktivieren und prüfen, ob diese immer Gültig sind, nicht vergessen. In
diesem Falle wäre ein Leerstring aber nicht so schlimm :wink:

Verfasst: 05.08.2006 18:22
von Thorsten1867
Neue Version 0.3.3
- Installer: Startmenü-Auswahl enthält jetzt sowohl 'Benutzer' als auch 'alle Benutzer' Einträge
(siehe dazu: http://www.purebasic.fr/german/viewtopi ... highlight=)
- Bug beim Erstellen eines Zip-Archiv behoben (evtl. vorhandene Datei wird nun zuerst gelöscht)

Verfasst: 05.08.2006 18:58
von ts-soft
Mal schnell nochmal nerven :mrgreen:
Da ich jetzt ja per Setup installiert habe, hab ich eigentlich erwartet, das er
das zuletzt verwendet Verzeichnis vorschlägt, stattdessen wollte er nach
C:\Progamme\EasySetup\

Meist verwenden Installer eine GUID, welche in die Registry eingetragen
wird, zusammen mit dem Installationspfad, den der Anwender gewählt hat,
um diesen Pfad, bei einem Update gleich anbieten zu können :wink:

Wenn Update nicht empfohlen, kann man so auch gleich Deinstallation der
alten Version vorschlagen, z.B.

Gruß
Thomas, und danke für die schnelle Umsetzung