Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [InnoSetup] Wie INI-Datei abändern ? (https://www.delphipraxis.net/65899-%5Binnosetup%5D-wie-ini-datei-abaendern.html)

Hansa 22. Mär 2006 00:07


[InnoSetup] Wie INI-Datei abändern ?
 
Hi,

Programm soll damit wie gewohnt installiert werden. Laufwerk/Verzeichnis auswählen usw. Dahin dann eben speichern. Ok, soweit kein Problem. Es handelt sich lediglich um eine Kopier-Operation ohne systemnahe Sachen (Registry usw.). Nun das Problem : Programm muß nach Installation wissen, wo die Datenbank jetzt gelandet ist. Hierfür ist eine INI-Datei vorgesehen, in der der genaue Pfad drinsteht. Angeblich geht das in einem Arbeitsschritt. Aber wo und wie ? Also : User ändert Pfad innerhalb der Installation und die INI muß dementsprechend angepaßt werden, damit das Programm dann weiß, wo die DB letztenendes liegt.

Allerdings habe ich die Info darüber anscheinend innerhalb eines Access-Trouble-Forums gefunden. Vieleicht gehts ja so nicht. Für Access scheints jedenfalls ziemlicher Krampf zu sein, so was hinzukriegen. 8)

sh17 22. Mär 2006 05:42

Re: [InnoSetup] Wie INI-Datei abändern ?
 
Man kann ja bei InnoSetup auch script-Code einfügen. Hier ein kleines Beispiel für nach der Installation:

[code=delphi]
Code:
var
  FinishedInstall: Boolean;

procedure DeInitializeSetup();
var
  FileName,NewFileName: String;
begin
  if not FinishedInstall then exit;

  NewFileName := ExpandConstant('{app}')+'\RSC\CORE\BACKGROUND.JPG';
  FileName := ExpandConstant('{src}')+'\BACKGROUND.JPG';
  if FileExists(FileName) then
    FileCopy(FileName,NewFileName,false);
 
  NewFileName := ExpandConstant('{app}')+'\ETC\CONTACT.INI';
  FileName := ExpandConstant('{src}')+'\CONTACT.INI';
  if FileExists(FileName) then
    FileCopy(FileName,NewFileName,false);
end;

procedure CurStepChanged(CurStep: Integer);
begin
  if CurStep = csFinished then
    FinishedInstall := True;
end;
Nun gibts da auch Ini-Funktionen. Näheres findest Du in der InnoSetup-Hilfe

Delphi-Quellcode:

function IniKeyExists(const Section, Key, Filename: String): Boolean;
function IsIniSectionEmpty(const Section, Filename: String): Boolean;

function GetIniBool(const Section, Key: String; const Default: Boolean; const Filename: String): Boolean
function GetIniInt(const Section, Key: String; const Default, Min, Max: Longint; const Filename: String): Longint;
function GetIniString(const Section, Key, Default, Filename: String): String;

function SetIniBool(const Section, Key: String; const Value: Boolean; const Filename: String): Boolean;
function SetIniInt(const Section, Key: String; const Value: Longint; const Filename: String): Boolean;
function SetIniString(const Section, Key, Value, Filename: String): Boolean;

procedure DeleteIniSection(const Section, Filename: String);
procedure DeleteIniEntry(const Section, Key, Filename: String);

Hansa 23. Mär 2006 02:10

Re: [InnoSetup] Wie INI-Datei abändern ?
 
Thx, jo geht echt alles einfach. :-D Habe 3 Testversionen verschickt. Mal sehen, was die sagen. 8)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz