PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kennt sich jemand mit Inno Setup aus?


Disconnected
2015-07-03, 19:25:48
Ziel ist es, eine Textdatei nach der Installation zu editieren. In der Datei sollen vorgegeben Pfade durch den Installationspfad {app} ersetzt werden

Ich habe mir jetzt irgendwo eine Prozedur in der [Code] Section zusammengeklaut, die genau das machen soll.

Nur über den Aufruf der Prozedur bin ich mir nicht im klaren. Ich lese da was von der [Run] Section und dem AfterInstall Parameter. Das Problem ist, da wird noch ein Filename verlangt, den es bei mir aber nicht gibt. An welcher Stelle muss ich die Prozedur aufrufen?

Lokadamus
2015-07-03, 19:55:55
Äh, Inno Setup ist doch ein Installer? Wenn ich dich richtig verstehe, geht es darum, dass eine Variable auf %APP& gesetzt wird.
AfterInstall hört sich nach einem Programm an, was zum Schluß, nach der Installation aufgerufen werden soll. So enden die meisten Programme. Klick den Haken an, damit die installierte Software gleich gestartet wird.

Kurz gesagt, wie sieht die Fehlermeldung aus? Was wirft die Ereignisanzeige aus?

Disconnected
2015-07-03, 20:16:39
Sorry, ich glaube, Du hast keinen Plan, was ich meine. Ja, Inno Setup ist ein Installer, aber ich möchte selbst ein Installskript erstellen, bei dem ich im Anschluss eine Text(ini)datei editiere und zwar den vorgegebenen Pfad, durch den eigentlichen Installationspfad {app} ersetzen. Die Prozedur habe ich. Nur wie rufe ich sie auf?

kruemelmonster
2015-07-03, 20:28:16
Und die umfangreiche Hilfe von Inno Setup hilft dir an welcher Stelle genau nicht weiter?

Poste doch einfach das Skript, ist einfacher als im Nebel umherzustochern.

Falls es dir hilft, ich habe hier (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=10642334&postcount=383) schonmal ein Inno Setup Skript für einen Crysis 1 Installer inkl Mods gepostet.

Disconnected
2015-07-03, 20:40:09
Die Hilfe hilft mir insofern nicht weiter, als dass ich nicht weiß, wie ich die Prozedur aufrufe. Mein Skript dient dazu die Steam Version von Thief Gold wegzusichern. Das Spiel läuft ohne Steam. Allerdings müssen in der Datei install.cfg die richtigen Pfade eingetragen werden.

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Thief Gold"
#define MyAppVersion "1.0"
#define MyAppPublisher "Square Enix"
#define MyAppURL "http://www.square-enix.com"
#define MyAppExeName "thief.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{46DC008D-8047-472A-8D05-A2414CDE0391}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\Square Enix\Thief Gold
DefaultGroupName=Thief Gold
DisableProgramGroupPage=yes
OutputBaseFilename=setup
SetupIconFile=C:\Program Files (x86)\Steam\steamapps\common\thief_gold\darkicon.ico
Compression=lzma
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=2100000000

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: C:\Program Files (x86)\Steam\steamapps\common\thief_gold\*; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Thief Gold"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\Thief Gold"; Filename: "{app}\{#MyAppExeName}"

Hier ist die Prozedur:

[Code]
procedure Update;
var
A: AnsiString;
U: String;
begin
LoadStringFromFile(ExpandConstant('{app}\install.cfg'), A);
U := A;
StringChange(U, 'C:\Program Files (x86)\Square Enix\Thief Gold', ExpandConstant('{app}'));
A := U;
SaveStringToFile(ExpandConstant('{app}\install.cfg'), A, False);
end;

An welcher Stelle muss ich sie aufrufen?

Lokadamus
2015-07-03, 21:02:56
Spotan würde ich auf den Procedure- String ganz oben tippen.
http://www.jrsoftware.org/ishelp/index.php?topic=scriptinstall
edit: Wenn ich es richtig verstehe, wird die Sache 2x aufgerufen, also die Procedure- Aufrufe überprüfen.

Disconnected
2015-07-04, 09:02:30
Also das Ganze in der [Files] Section aufrufen? Muss ich mal probieren.

--Aaah! It wörx, thankjews.

Jetzt muss ich nur noch den Fehler beim Uninstall fixen.