Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fragen zu Innos Setup Handling? (https://www.delphipraxis.net/19917-fragen-zu-innos-setup-handling.html)

MathiasSimmack 11. Apr 2004 16:26

Re: Fragen zu Innos Setup Handling?
 
Als Beispiel: Diese Funktion versucht beim Start den "SourcePath" von Windows zu ermitteln. Klappt das nicht, startet das Setup nicht.
[code=delphi]
Code:
function InitializeSetup: boolean;
var
  szSourcePath : string;
begin
  Result := (RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows\CurrentVersion\Setup',
    'SourcePath',szSourcePath)) and (szSourcePath <> '');

  if(Result) then MsgBox(szSourcePath,mbInformation,MB_OK);
end;
Im Prinzip habe ich das auch nur mit den Angaben aus der Hilfedatei zusammengebaut.

The Knight 11. Apr 2004 22:00

Re: Fragen zu Innos Setup Handling?
 
Mmmh, ich hab mir die Hilfe mal angesehen, kann dieser RegistryCheck vielleicht "function RegGetSubkeyNames" sein? Fallsja, wo gibts dazu Beispiele, vom Programmieren habe ich nämlich absolut keine Ahnung... :(

MathiasSimmack 11. Apr 2004 22:13

Re: Fragen zu Innos Setup Handling?
 
Ich glaube, dass du ein Verständnisproblem hast. Mag sein, dass das passiert wenn du (wie du selbst sagst) keine Ahnung vom Programmieren hast, aber wie sieht´s mit deinem Englisch aus? Kannst du dir unter dem Wort
Zitat:

Zitat von The Knight
RegGetSubkeyNames

nichts vorstellen?

Noch mal kurz: Du willst beim Start des Setup nach einem bestimmten Schlüssel/Wert in der Registry suchen. Einen
Zitat:

RegistryCheck
in dem Sinn gibt es nicht. Den musst du schon selbst schreiben. Ich hab´s dir mit einem Beispiel beim Start demonstriert. Nimm dein Setupskript und hänge das Code-Beispiel aus meinem letzten Posting an (so wie es da steht, inkl. der "[Code]"-Sektion). Dann kompiliere und starte es, und du siehst was dabei passiert.

Es gibt noch eine Funktion, "RegValueExists", die ich in meinem Beispiel nicht benutzt habe. Diese Funktion liest den Wert nicht aus sondern prüft nur ob er da ist. Ein Aufrufbeispiel wäre:
[code=delphi]
Code:
function InitializeSetup: boolean;
var
  szSourcePath : string;
begin
  Result := RegValueExists(HKEY_LOCAL_MACHINE,
    'Software\Microsoft\Windows\CurrentVersion\Setup',
    'SourcePath');
end;
Damit startet das Setup nur, wenn es den Eintrag "SourcePath" in "HKLM\...\Setup" gibt. Allerdings ist damit nicht sichergestellt, dass der Wert auch das enthält, was du erwartest. Dazu müsstest du ihn (wie im ersten Beispiel gezeigt) auslesen und ggf. mit einem Vorgabewert vergleichen.

The Knight 12. Apr 2004 09:41

Re: Fragen zu Innos Setup Handling?
 
Bist du sicher, dass das stimmt, was du da schreibst? :/ Ich habe den kompletten Code, genauso wie du ihn geschrieben hast übernommen, aber er geht nicht. Der Pfad zur dem Reg-Schlüssel stimmt aber!! Ich habs auch mit anderen Sachen in "Software" probiert, geht trotzdem nicht. Richtig geschrieben habe ich aber alles.

Hier mein kompletter Code:

[code=delphi][Setup]
AppName=TPR Patch Pack Build 62 German Edition
AppVerName=TPR Patch Pack Build 62 German Edition
DefaultDirName=C:\Knights and Merchants
InfoAfterFile=C:\Eigene Dateien\Patch Pack Quellcode\Docs DE\text.txt
Compression=lzma
SolidCompression=yes
uninstallable=no

[Languages]
Name: "de"; MessagesFile: "compiler:Languages\German.isl"

[Files]
Source: "C:\Eigene Dateien\Patch Pack Quellcode\PP1 DE\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs


[Run]
Filename: "{app}\KM_TPR.exe"; Description: "Knights and Merchants jetzt starten"; Flags: nowait postinstall skipifsilent
Filename: "{app}\Patch_Pack_Readme.htm"; Description: "Liesmich-Datei lesen (empfohlen)"; Flags: nowait postinstall skipifsilent

Code:
function InitializeSetup: boolean;
var
  szSourcePath : string;
begin
  Result := (RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\JOYMANIA Entertainment\KnightsandMerchants TPR',
    'SourcePath',szSourcePath)) and (szSourcePath <> '');

  if(Result) then MsgBox(szSourcePath,mbInformation,MB_OK);
end;

MathiasSimmack 12. Apr 2004 21:53

Re: Fragen zu Innos Setup Handling?
 
Zitat:

Zitat von The Knight
Bist du sicher, dass das stimmt, was du da schreibst? :/

In dem Fall: Ja.

Zitat:

Der Pfad zur dem Reg-Schlüssel stimmt aber!
Hm, der Schlüssel ... na gut ... Aber heißt der Eintrag, den du suchst, wirklich "SourcePath":
Zitat:

[code=pre]
Code:
function InitializeSetup: boolean;
var
  szSourcePath : string;
begin
  Result := (RegQueryStringValue(HKEY_LOCAL_MACHINE,
    'Software\JOYMANIA Entertainment\KnightsandMerchants TPR',
    [color=#ff0000]'SourcePath'[/color],szSourcePath)) and (szSourcePath <> '');

  if(Result) then MsgBox(szSourcePath,mbInformation,MB_OK);
end;

Das wäre ein witziger Zufall, weil das nur ein Beispiel von mir war.

The Knight 13. Apr 2004 00:39

Re: Fragen zu Innos Setup Handling?
 
Ach so, das rote musste ich ändern!!! Das musst du gleich sagen, das konnte ich ja nicht wissen… bin doch Anfänger, wie du weißt.
Aber super, jetzt klappt es. Bin sehr dankbar und mehr als zufrieden! :)

The Knight 13. Apr 2004 16:33

Re: Fragen zu Innos Setup Handling?
 
Vergeßt es, Frage hat sich erledigt! Edit!

The Knight 14. Apr 2004 12:46

Re: Fragen zu Innos Setup Handling?
 
Uuh, jetzt hätte ich doch noch eine Frage! Ich habe ja einen Patch hier und man muß den Installationspfad angeben. Da der aber schon existiert, kommt eine Aufforderung, ob der Ordner überschrieben werden soll oder nicht. Wie kann ich diese Frage umgehen/automatisieren?

Ich hab in der Hilfe nach overwrite gesucht, dazu gibt’s aber nichts, was hinkommt oder (also für Flags:). Was muß man da schreiben?

The Knight 20. Aug 2004 08:20

Re: Fragen zu Innos Setup Handling?
 
Ich habe meinen Installer erfolgreich benutzen können, habe aber festgestellt, das manche User zum dumm für die Bedienung sind. In dem Installationspfad soll daher ein ganz bestimmter Pfad stehen.

Inno soll also zur Regsitry connecten und dort aus einem bestimmten Eintrag einen Wert auslesen (das ist ein Pfad). Dieser Pfad (oder Variable...) soll dann den Wert der Variable bilden, die für den Installationspfad verwendet wird.

Könnt ihr mir helfen?

PS: Kann man mit Inno eigentlich auch solche Vollbild-Hintergründe machen, wie mit InstallShield?

Phoenix 20. Aug 2004 08:25

Re: Fragen zu Innos Setup Handling?
 
Zitat:

Zitat von The Knight
PS: Kann man mit Inno eigentlich auch solche Vollbild-Hintergründe machen, wie mit InstallShield?

Zum Glück nicht. :zwinker: Das sind noch Relikte aus der Windows 3.11 Zeit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr.
Seite 2 von 4     12 34      

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