InnoSetup

InnoSetup Registry auslesen bei 32bit und 64bit

function GetHKLM: Integer;
begin
  if IsWin64 then
    Result := HKLM64
  else
    Result := HKLM32;
end;

function FirebirdDefaultDir() :string;
begin
  if RegQueryStringValue(GetHKLM(),'SOFTWARE\Firebird Project\Firebird Server\Instances','Defaultinstance',result) then
    Result:=AddBackSlash(Result)
  else
    Result:='';
end;

function isNotFirebird() :boolean;
var
  s :string;
begin
  Result:=true;
  s:=FirebirdDefaultDir();
  if s<>'' then
    Result:= not FileExists(s+'bin\fbClient.dll') and not FileExists(s+'WOW64\fbClient.dll');
end;
Tags: 

Innosetup - Nach der Installation eine Datei kopieren

Nach der Installation soll eine Datei in Abhängigkeit von der Windowsversion in ein Verzeichnis kopiert werden.

Die Datei qf steht im Installationsverzeichnis bereit.

Das Zielverzeichnis zv soll ab Windows-Vista das Verzeichnis
C:\Users\user_name\Appdata\Local\ sein. In älteren Windowsversionen wird die Datei im Programmverzeichnis gespeichert.

[Code]  
procedure CurStepChanged(CurStep: TSetupStep);  
var qf,zf,zv:string;  
  Version: TWindowsVersion;  
begin  
  if CurStep = ssPostInstall then begin  
    GetWindowsVersionEx(Version);  
    if Version.Major>=6 then  
      zv:=ExpandConstant('{localappdata}\wnftest\')  
    else  
      zv:=ExpandConstant('{app}\');  
    qf:=ExpandConstant('{src}\einstellungen.dat');  
    zf:=zv+'kita_fb.liz';  
    MsgBox(IntToStr(Version.Major)+#13+  
      qf+#13+zv+#13+zf, mbInformation, MB_OK);  
    forcedirectories(zv);  
    FileCopy( qf, zf,FALSE);  
    end  
end;