Seite 6 von 54
Verfasst: 08.07.2006 17:48
von ts-soft
Thorsten1867 hat geschrieben:
Schaut schlecht aus. Erste Versuche haben ergeben, dass es die Größe des Installers fast verdoppeln (+ ca. 70 KByte) würde.
Wo ist das Problem, 2 unterschiedliche Install.exe zu verwenden. Soll ja nicht
gemischt werden, sondern entweder Zip oder PackerEx

Verfasst: 08.07.2006 17:58
von Thorsten1867
Hm....
Werde mal in mich gehen müssen.
Klingt nach einem umfangreicherem Update.
- Combobox auf Setup-Panel oder als Einstellung
- zweiter Installer
- zweite alternative Packroutine
- .....
..... Das dürfte noch etwas dauern .....

Verfasst: 08.07.2006 18:16
von ts-soft
OptionGadget
und dann entsprechend entweder Install.exe oder Install2.exe benutzen
Aber hast schon Recht, es eilt nicht, wäre aber schön.
Verfasst: 10.07.2006 16:54
von ts-soft
Hab noch nen Tip für Deinen Uninstaller, so das kein Batch usw. gebraucht wird!
Diese Lib nutzen:
http://www.purebasic.fr/english/viewtopic.php?t=22382
Code für UninstallFinish.exe:
Code: Alles auswählen
EraseFile.s = GetEnvironmentVariable("ERASEFILE")
Delay(1000)
DeleteFile(EraseFile)
Code für Deinen Uninstaller:
Code: Alles auswählen
DataSection
finishuninstall: IncludeBinary "uninstallfinish.exe"
EndDataSection
SetEnvironmentVariable("ERASEFILE", ProgramFilename())
ExecuteEXE(?finishuninstall)
Bei Aufruf der letzten Zeile, wird Dein Uninstaller gelöscht

(evtl. noch Ordner löschen, ist da auch kein Problem mehr)
Hab aber nur unter XP getestet!
Gruß
Thomas
Verfasst: 10.07.2006 17:17
von Thorsten1867
Interessanter Ansatz, wenn ich das richtig verstanden habe.
Das Ergebnis dürfte sich nicht viel von meinem unterscheiden.
Ich habe es noch nicht getestet, aber ich vermute die Batchlösung erzeugt eine kleinere EXE.
PS:
Ich wäre sehr dankbar für Tipps, mit welchen Tricks (außer UPX) man die EXE-Größe von Installer und Uninstaller noch minimieren kann.
Verfasst: 10.07.2006 17:31
von ts-soft
>> Ich habe es noch nicht getestet, aber ich vermute die Batchlösung erzeugt eine kleinere EXE.
Wenn die Uninstallfinish.exe mit UPX gepackt wird, ist diese exact 3 KB gross.
(oder mit PackerEx packen)
Dein Code wird kürzer und wenn es unter Win9x auch sauber funktioniert
finde ich diese Lösung wesentlich besser, als temporäre Dateien zu schreiben.
PS: wer löscht den den Batch?
Verfasst: 10.07.2006 17:41
von Thorsten1867
Die Batch-Datei löscht sich selber. Im Gegensatz zu einer EXE funktioniert das.
Code: Alles auswählen
Procedure SelfDestruct(ProgDir$="")
exe$ = ProgramFilename()
bat$ = Left(exe$,1)+":\~~uninst.bat"
If ProgDir$ And Right(ProgDir$,1) = "\" : ProgDir$ = Left(ProgDir$,Len(ProgDir$)-1) : EndIf
If CreateFile(0, bat$)
WriteStringN(0, "cd \")
WriteStringN(0, ":DeleteFile")
WriteStringN(0, "del "+exe$) ;program executable
WriteStringN(0, "if exist "+exe$+" goto DeleteFile")
If ProgDir$
WriteStringN(0, "rd "+ProgDir$) ; program directory
EndIf
WriteStringN(0, "del "+bat$) ; temporary batch file
WriteStringN(0, "exit")
CloseFile(0)
ShellExecute_(0,"open",bat$,0,0,#SW_HIDE)
EndIf
EndProcedure
Verfasst: 10.07.2006 17:48
von Thorsten1867
ts-soft hat geschrieben:Dein Code wird kürzer und wenn es unter Win9x auch sauber funktioniert finde ich diese Lösung wesentlich besser, als temporäre Dateien zu schreiben.
Muss jetzt mal eine Möglichkeit suchen (ohne Dualboot), um meine Programme einfach unter Win98 zu testen. Bei 'KvGS' kam es bei Nutzern unter Win98 (v.a. in Netzwerkumgebung) zu seltsamen Abstürzen (z.B. beim Ändern der Dateiattribute).
Verfasst: 10.07.2006 17:51
von ts-soft
Thorsten1867 hat geschrieben:Die Batch-Datei löscht sich selber. Im Gegensatz zu einer EXE funktioniert das.
Bei EXE funktioniert es auch, wie Du oben siehst
Statt umständliches Batch eine Exe im RAM nutzen, die ist am Programmende automatisch in Nirvana

Ist aber nur ein Vorschlag

Verfasst: 14.07.2006 21:01
von Thorsten1867
Neue Version 0.3.1
- benutzerdefinierte Bezeichnung für Programmverknüpfungen möglich
- kleinere Fehlerbehebungen
- Übersetzungstool beigelegt