Seite 8 von 54

Verfasst: 05.08.2006 19:12
von Thorsten1867
Ich vermeide Registry-Einträge soweit es möglich ist. Es wird bisher nur ein einziger Eintrag erzeugt und zwar für den Uninstaller.

Man könnte evtl. überlegen, ob bei 'zusätzliche benutzerdefinierte Aufgaben' auch Registry-Einträge definiert werden könnten.
Aber dazu wäre es nicht schlecht zu hören, wer alles daran Interesse hätte, welche Einträge sinnvoll wären und wo diese standardmäßig in der Registry hingehören würden.

Falls ich mich dann mal langweile .... :wink:

Verfasst: 05.08.2006 19:27
von ts-soft
Auf dem ersten Tab solltest Du ein GUID Feld einrichten, sowie einen Button zum Erstellen.

Code: Alles auswählen

Procedure.s MakeGUID()
  LBuffer.s = Space(76)
  SBuffer.s = Space(38)
  CoCreateGuid_(GuidId.GUID)
  StringFromGUID2_(GuidId, LBuffer,76);
  WideCharToMultiByte_(0, 0, LBuffer, 76, SBuffer, 38, 0, 0);
  ProcedureReturn SBuffer
EndProcedure
GUID mit in den Projektoptionen speichern, wichtig!
Wenns leer bleibt, ist alles beim alten, ansonsten in der Registry eintragen:
HKEY_CURRENT_USER\SOFTWARE\thorsten1897\EasySetup
Schlüssel = GUID
Wert = Pfad
Wenn Wert mit GUID des Setups vorhanden, diesen Pfad vorschlagen, ansonsten wie bisher.

Bei den Benutzeraktionen kannste dann später auch eine vorherige Deinstallation ermöglichen, wenn GUID vorhanden.

Dieser eine Eintrag, zumal optional belastet die Registry nicht, und ist IMHO sehr praktisch :wink:

Gruß
Thomas

// Nachtrag:
Statt der Registry kannste auch eine Preference-Datei in:

Code: Alles auswählen

#CSIDL_APPDATA + "thorsten1867\EasySetup"
anlegen :wink:

Verfasst: 05.08.2006 19:51
von Thorsten1867
Den tieferen Sinn der GUID ist mir noch nicht ganz klar, zumal das Programm doch durch den Pfad '...\EasySetup' definiert ist.
HKEY_CURRENT_USER\SOFTWARE\thorsten1897\EasySetup
Schlüssel = GUID
Wert = Pfad
Wenn ich noch eine Systemvariable für den User '...\thorsten1897\...' finde, klingt das Ganze machbar.

Verfasst: 05.08.2006 20:13
von ts-soft
Thorsten1867 hat geschrieben:Den tieferen Sinn der GUID ist mir noch nicht ganz klar, zumal das Programm doch durch den Pfad '...\EasySetup' definiert ist.
Dort ist nur der Default-Setup-Pfad definiert, ich installiere z.B. meist nach D:. So möchte ich, wenn ich es nochmal Installiere, natürlich auch den zuletzt verwendeten Pfad vorgeschlagen haben, und nicht den Default.
Thorsten1867 hat geschrieben:
HKEY_CURRENT_USER\SOFTWARE\thorsten1897\EasySetup
Schlüssel = GUID
Wert = Pfad
Wenn ich noch eine Systemvariable für den User '...\thorsten1897\...' finde, klingt das Ganze machbar.
Die mußte Dir wohl selber erstellen. Die ist ja nur für Easy-Setup und interessiert den User ja nicht!

Die GUID ist nur zum sicheren Feststellen, das das aktuell zu installierende bereits installiert wurde, da GUID gleich. Setzt natürlich voraus, das die GUID in den Projekt-Optionen nur einmal erstellt wird.

GUID ist hierfür das einfachste und simpelste, Programmname ist nicht so geeignet, da dieser oft Versionsnummer usw. enthält.

Verfasst: 06.08.2006 00:46
von Thorsten1867
Neue Version 0.3.4
- Globally Unique Identifier (GUID) kann für Programm erzeugt werden
- Erkennen einer vorherigen Installation anhand GUID (=> Installationsverzeichnis)

Verfasst: 06.08.2006 01:10
von ts-soft
Bist ja schnell, aber so kommen Fehler :wink:
Bei erneuter Installation wird:
D:\Programmieren\PureBasic4\Tools\EasySetup\EasySetup
vorgeschlagen, da ist was zuviel. Bei der Gelegenheit sollte er sich den Ort
der Verknüpfung vielleicht auch merken.

Dann kann ich Inno-Setup ja bald ausmisten :allright:

Nachtrag:
Hab gerade in die Reg geschaut, Du solltest vielleicht nur den Pfad eintragen!
Dann funktioniert es auch!

Bei Deinstallation würde ich den RegEintrag lassen. Werden ja nicht tausende
von Programmen auf einen Computer von Deinem Programm installiert, so
das es wirklich keinelei Auswirkungen auf die Performance hat.

PS: Machen die anderen Installer auch nicht anders :wink:

Verfasst: 06.08.2006 12:07
von Thorsten1867
Bug fixed (Hoffe ich zumindest :wink: )

Verfasst: 06.08.2006 17:43
von ts-soft
Thorsten1867 hat geschrieben:Bug fixed (Hoffe ich zumindest :wink: )
Bug ist weg :allright:

Trotzdem noch nen Vorschlag:
Jetzt merkt er sich den letzten Pfad, aber nicht den zur Verknüpfung, sowie
ob Desktop-Verknüpfung, ja oder nein, das könnte er sich doch auch
merken, wo er den Pfad hat, kann er es in die uninstall.dat mit reinschreiben.

Ich weiß, ich nerve, aber das ist leider meist Standard bei Installern und es
wäre schön, wenn Deiner das auch macht!

UnInstall vorherige Version kannste jetzt auch einbauen. Obs ne vorherige
Version gibt weißte ja jetzt

Verfasst: 06.08.2006 18:02
von Thorsten1867
ts-soft hat geschrieben:Jetzt merkt er sich den letzten Pfad, aber nicht den zur Verknüpfung, sowie ob Desktop-Verknüpfung, ja oder nein, das könnte er sich doch auch merken, wo er den Pfad hat, kann er es in die uninstall.dat mit reinschreiben.

Ich weiß, ich nerve, aber das ist leider meist Standard bei Installern und es
wäre schön, wenn Deiner das auch macht!

UnInstall vorherige Version kannste jetzt auch einbauen. Obs ne vorherige
Version gibt weißte ja jetzt
Ich denke, ich beginne so langsam zu begreifen, was du willst. Mal schauen, was sich machen lässt.

PS: Der Pfad der Desktopverknüpfung steht schon in der Uninstall.dat

Verfasst: 06.08.2006 18:10
von ts-soft
>> Ich denke, ich beginne so langsam zu begreifen, was du willst. Mal schauen, was sich machen lässt.
Ich wollte mal selber so ein Programm schreiben, aber mir war es bisher
einfach zuviel, weil ich würde noch viel mehr Einbauen, und wahrscheinlich
nie fertig werden. Deshalb kommt mir Deine EasySetup sehr entgegen, weil
es die wichtigsten Funktionen meiner Vorstellungen bereits unterstützt.

Für den Rest gebe ich Dir ab und zu nen Schubs :lol:

Gruß
Thomas