Delphi-PRAXiS
Seite 3 von 4     123 4      

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 20. Aug 2004 09:03

Re: Fragen zu Innos Setup Handling?
 
Zitat:

Zitat von The Knight
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.

Auch das lässt sich über die eingebaute Skriptsprache machen. Wenn du dir mal das Beispiel "CodeSample1.iss" ansiehst, da steht folgendes:
[code=pre][Setup]
DefaultDirName={code:MyConst}\My Program

Code:
function MyConst(Default: String): String;
begin
  Result := ExpandConstant('{pf}');
end;
Wichtig ist eigentlich der fett markierte Teil, der auf die entsprechende Funktion in der "Code"-Sektion verweist. Ähnlich wie bei deinem alten Problem könntest du auch hier wieder auf die Registry zugreifen und den entsprechenden Wert auslesen. Ggf. solltest du im Setup auch
Code:
[Setup]
DisableDirPage=yes
setzen, damit der User gar keine Chance hat, ein anderes Verzeichnis zu wählen. Ist für einen Patch ohnehin die beste Lösung. Es setzt aber voraus, dass du tatsächlich in der Registry genug Infos findest, um das bereits installierte Spiel zu finden.

Du musst mal in die Hilfe schauen. Es gibt noch ein paar "Disable*"-Direktiven, mit denen du bspw. auch die Auswahl der Programmgruppe usw. verhindern kannst.

Zitat:

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

Zitat von Phoenix
Zum Glück nicht. :zwinker:

Eine glatte Lüge :mrgreen:
Code:
[Setup]
WindowVisible=yes
WindowShowCaption=no ; <-- optional ohne Titelzeile
Aber zugegeben, schön sieht so was nicht aus. ;)

The Knight 20. Aug 2004 09:17

Re: Fragen zu Innos Setup Handling?
 
Zitat:

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

Wow, das ging schnell.

Ich probiere es heute abend mal aus.

Was? Die Hintergründe gibt es doch heute noch bei PC Spiel-Installationen. Eigentlich kenne ich gar kein Spiel, dass keinen Vollbild-Hintergrund bei der Installation hat!? ;)

MathiasSimmack 20. Aug 2004 09:55

Re: Fragen zu Innos Setup Handling?
 
Ich kenne es eigentlich nur noch so, dass im Hintergrund Bilder aus dem Spiel angezeigt werden. Wie sagt man: billboards? Sprich: solange die Installation läuft, solange wechseln im Hintergrund die Bilder. Dieser einfarbige Hintergrund (auch wenn er einen Farbverlauf hat) ist aber mittlerweile recht selten geworden.

The Knight 11. Sep 2004 20:49

Re: Fragen zu Innos Setup Handling?
 
Also das war echt das letzte mal, dass ich mit Delphi in Inno irgendwas versucht habe zu coden! :mad: Ich brings nicht.

Könnt ihr mir daher den Quellcode geben? Ich meine die Funktion, mit der man einen Pfad (das ist ein Wert) eines Unterschlüssels aus einem Schlüssel rauslesen kann. Das ganze wird in den Installpfad des Installers kopiert.

Ich gebs auf, ich hasse Delphi coden!! :(

City Light 11. Sep 2004 21:22

Re: Fragen zu Innos Setup Handling?
 
Zitat:

Zitat von The Knight
Ich bete den tag an, an dem es eine komplett deutsche Documentation gibt! Bis dahin, könnt ihr mir diese Fragen beantworten:

- wie kann ich die Erstellungen einer Programmgruppe im Startmenü verbieten
- wie kann ich die Deisntallationsdateien verbieten (oder überhaupt die Deinstall)
- wie kann ich die Komprimierung/das Packen der Dateien so einstellen, dass sie so klein werden wie mit Winrar gepackte Dateien
- wie kann ich meinem Setup eine beliebige Sprache verpassen (ich meine die Standarttexte, Fehlermeldungen usw… bzw. wie kann ich solche Texte meinen Wünschen anch abändern..)??

Wäre nett, wenn ihr mir gleich die Scriptzeilen geben könntet.
THX


Schon mal mit ISTool gearbeitet? nein! na dann schau mal hier


Es nimmt dir jegliche arbeit einfach ab...

The Knight 12. Sep 2004 10:25

Re: Fragen zu Innos Setup Handling?
 
Die von dir zitierten Dinge habe ich schon seit Ewigkeiten auf dem Kasten. ;) Das ist nicht das Problem, sondern das mit dem Registrypfad!

MathiasSimmack 12. Sep 2004 10:43

Re: Fragen zu Innos Setup Handling?
 
Zitat:

Zitat von The Knight
Also das war echt das letzte mal, dass ich mit Delphi in Inno irgendwas versucht habe zu coden! :mad: Ich brings nicht.

[...]

Ich gebs auf, ich hasse Delphi coden!! :(

Ja, aber was hat das jetzt mit Delphi zu tun? Es geht doch um Inno Setup. Oder nicht?

Zitat:

Könnt ihr mir daher den Quellcode geben? Ich meine die Funktion, mit der man einen Pfad (das ist ein Wert) eines Unterschlüssels aus einem Schlüssel rauslesen kann.
Wie oft denn noch?

Also gut: Öffne mal deine Registry (regedit.exe) und suche unter HKEY_LOCAL_MACHINE den Pfad "Software\Microsoft\Windows\CurrentVersion" heraus. (Wie du dahin kommst, wirst du wohl wissen.) Dort findest du einen Wert namens "RegisteredOrganziation", der nachfolgend ausgelesen wird. Es kann bei NT/2000/XP auch im Schlüssel "Windows NT" anstelle von "Windows" stehen. Kann, muss aber nicht. Das ist das einzige, das du beachten musst. Hier also der Skriptcode:
[code=pre]
Code:
function InitializeSetup: boolean;
var
  MeineStringVariable : string;
begin
  if(RegQueryStringValue(HKEY_LOCAL_MACHINE,     // Root-Schlüssel
    'Software\Microsoft\Windows\CurrentVersion', // Pfad zum Wert
    'RegisteredOrganization',                    // Wert
    MeineStringVariable)) then                   // Deine String-Variable

  MsgBox(MeineStringVariable,mbInformation,MB_OK);
end;
Damit hast du den Inhalt von "RegisteredOrganziation" in deiner String-Variablen. Das gleiche Prinzip machst du nun mit deinem von dir gesuchten/gewünschten Wert. Und was du dann vorhast, das könntest du noch mal erklären:
Zitat:

Das ganze wird in den Installpfad des Installers kopiert.
:gruebel:

The Knight 12. Sep 2004 11:09

Re: Fragen zu Innos Setup Handling?
 
Ich denke, du hast mich niucht verstanden. Ichmeinte aus registry einen bestimmten wert auslesen und diesen dann in "DefaultDirName=" einsetzen. Das geht mit variablen und so, aber ich bin da selber gescheitert. Der ausgelesene Wert ist ein Pfad (könnte auch Text oder Zahlen usw. sein).... verstehste jetzt?

MathiasSimmack 12. Sep 2004 13:07

Re: Fragen zu Innos Setup Handling?
 
Ja, aber so was findest du in der Inno Setup-Hilfe bzw. in den mitgelieferten Beispielen. Beides wird meist unterschätzt bzw. komplett ignoriert.

Eine Möglichkeit:
Code:
[b][Setup][/b]
DefaultDirName={reg:HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\Delphi32.exe,Path|{pf}\My Program}
was bedeutet, dass das Setup den in der Registry eingetragenen Pfad der "delphi32.exe" benutzt. Wenn es diesen Eintrag nicht gibt, wird stattdessen der Standard "%programme%\My Program" benutzt.

Das gleiche mit dem Umweg über die [Code]-Sektion:
[code=pre][Setup]
DefaultDirName={code:GetRegValue|{pf}\My Program}

Code:
function GetRegValue(DefaultValue: string): string;
begin
  // wenn nicht gefunden, ...
  if(not RegQueryStringValue(HKEY_LOCAL_MACHINE,
    'Software\Microsoft\Windows\CurrentVersion\App Paths\Delphi32.exe',
    'Path',
    Result)) then
  // ... dann den Pfad %programme% zurückliefern
  Result := ExpandConstant(DefaultValue);
end;
Hier wird der Alternativpfad als Vorgabewert (DefaultValue) übergeben.
Und? War das nun so schwer? ;)


@meuternde Moderatoren: Wie wär´s mit einem Inno Setup-Highlighter? ;)

The Knight 12. Sep 2004 17:31

Re: Fragen zu Innos Setup Handling?
 
Sagen wir es so: darauf wäre ich NIE gekommen und so sahen meine eigenen Versuche auch nicht aus. Ich danke dir für deine Kooperation. Meine fertigen Patches werden von 100en Usern benutzt und du kannst dich freuen, einen Teil dazu beigetragen zu haben. Übrigens gutes Inno-Handbuch, was du da angelegt hast, es hat mir einiges gebracht! ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.
Seite 3 von 4     123 4      

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