2017-06-28 1 views
1

Während der Installation erstellt das Installationsprogramm ein Sicherungsverzeichnis mit einem Zeitstempel, der hinzugefügt wird, um es eindeutig zu machen, wenn das Installationsprogramm mehrmals gestartet wird. Während der Deinstallation muss ich einige Dateien (die nicht im [Dateien] - und [Dir] -Abschnitt abgelegt wurden) in usUninstall oder usPostUninstall wiederherstellen. Diese Dateien befinden sich in Unterverzeichnissen im Sicherungsverzeichnis. Dazu benötige ich meinen Speicherort, an dem das Deinstallationsprogramm gestartet wird, damit ich die Dateien wiederherstellen kann. Ich habe die GetCurrentDir-Funktion gefunden und ausprobiert. Aber während der Deinstallation gibt die GetCurrentDir-Funktion den Speicherort c: \ WINDOWS \ system32 zurück. Ich habe es auch während der Installation getestet, aber in diesem Fall gibt die Funktion GetCurrentDir den Ort zurück, an dem das Installationsprogramm gestartet wurde.Pfad zum Deinstallationsprogramm in Inno Setup

Wie bekomme ich den richtigen Ort von wo die Deinstallation gestartet wird?

+0

Ich verstehe nicht, wie Ihre (falsche) Verwendung von 'GetCurrentDir' mit *" Ort, wo das Deinstallationsprogramm gestartet wird "*. Was willst du erreichen? –

Antwort

0

Die Datei {uninstallexe} constant wird in einen Pfad zum Deinstallationsprogramm aufgelöst.

Wenn man das mit ExtractFilePath Sie einen Pfad zum Uninstaller Ordner erhalten:

ExtractFilePath(ExpandConstant('{uninstallexe}')) 

Obwohl tatsächlich, wird in der Regel der Pfad der Installationspfad sein. So können Sie {app} constant direkt verwenden.


Verwenden Sie nicht GetCurrentDir! Es gibt das aktuelle Arbeitsverzeichnis zurück. Was muss nicht der Pfad zum Installer sein.

Verwenden Sie {src} constant.

+1

Die {uninstlexe} ist, was ich suchte, aber nicht gefunden. Es hat mein Problem gelöst zu wissen, welches Installationsprogramm von welchem ​​Ort gestartet wurde. – Jammer