Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Innosetup: Windows-Laufwerk ermitteln (https://www.delphipraxis.net/159090-innosetup-windows-laufwerk-ermitteln.html)

hoika 14. Mär 2011 09:02

Innosetup: Windows-Laufwerk ermitteln
 
Hallo #,

ich möchte eine Datei nach C:\Test (ein Bsp.) kopieren.
C soll dabei der Laufwerksbuchstabe sein, in das Windows installiert wurde.

Ist Windows also auf D installiert, soll die Datei auch nach D:\Test.

Im Netz bin ich nicht so fündig geworde,
Mein bisheriger Ansatz:

Source: C:\Inst\Bla.Txt; DestDir: ExtractFileDrive(ExpandConstant('{drive:{win}}'))+ \Test

Das ExpandConstant macht er auch, aber das ExtractFileDrive dann nicht mehr.

Ich wollte eigentlich kein Script benutzen.

Was mache ich falsch ?


Danke


Heiko

Bernhard Geyer 14. Mär 2011 09:06

AW: Innosetup: Windows-Laufwerk ermitteln
 
Der Laufwerksbuchstabe ist doch immer der erste Buchstabe in der {win}-Variable?

Übrigens: Seit Windows Vista ist Windows immer unter C:\ installiert, auch wenn es auf weiterer Partition/Laufwerk installiert ist. Intern werden die Laufwerke so umgeordent das immer C:\ als Installations-LW rauskommt.

hoika 14. Mär 2011 09:08

AW: Innosetup: Windows-Laufwerk ermitteln
 
Hallo,

Zitat:

Der Laufwerksbuchstabe ist doch immer der erste Buchstabe in der {win}-Variable?
wie bringt mich das weiter ?

Copy(ExpandCommand('{win}'1,1) ??


Heiko

RWarnecke 14. Mär 2011 09:13

AW: Innosetup: Windows-Laufwerk ermitteln
 
Hallo Heiko,

hast Du das ganze schon mal versucht über den Bereich CODE über eine Funktion probiert ? Ich hatte mal ein ähnliches Problem, dabei habe ich zum Schluss die ganzen Werte in einer Funktion ermittelt und dann unter [FILES] mit zum Beispiel
Code:
DestDir: "{code:InstallPath}\";
abgefragt.

hoika 14. Mär 2011 09:25

AW: Innosetup: Windows-Laufwerk ermitteln
 
Hallo,

[Code]
function GetWindowsDrive: string;
var
ch: array[0..255] of Char;
s: String;
begin
GetWindowsDirectory(ch,SizeOf(ch)-1);
s:= ch;
Result:= s[1];
end;

[Files]
Source: C:\Inst\Bla.Txt; DestDir: {code:GetWindowsDrive}:\Test



Unknown Identifier GetWindowsDirectory ... ;(



Heiko

Sir Rufo 14. Mär 2011 09:28

AW: Innosetup: Windows-Laufwerk ermitteln
 
tstststs :mrgreen:

Nimm doch den direkten Weg
Code:
{%SYSTEMDRIVE}
Zitat:

Zitat von InnoSetup-Help
Code:
{%NAME|DefaultValue}
Embeds the value of an environment variable.

•NAME specifies the name of the environment variable to use.
•DefaultValue determines the string to embed if the specified variable does not exist on the user's system.
•If you wish to include a comma, vertical bar ("|"), or closing brace ("}") inside the constant, you must escape it via "%-encoding." Replace the character with a "%" character, followed by its two-digit hex code. A comma is "%2c", a vertical bar is "%7c", and a closing brace is "%7d". If you want to include an actual "%" character, use "%25".
•NAME and DefaultValue may include constants. Note that you do not need to escape the closing brace of a constant as described above; that is only necessary when the closing brace is used elsewhere.
Examples:
Code:
{%COMSPEC}
{%PROMPT|$P$G}


hoika 14. Mär 2011 09:30

AW: Innosetup: Windows-Laufwerk ermitteln
 
Hallo #

die Lösung kann soooo einfach sein

[Files]
Source: C:\Inst\Bla.Txt; DestDir: {drive:{win}}\Test


Heiko

hoika 14. Mär 2011 10:23

AW: Innosetup: Windows-Laufwerk ermitteln
 
Hallo #,

{%SYSTEMDRIVE} hm

Ist das immer das Windows-Verzeichnis oder kann es auch das Boot-Verzeichnis sein ?
(Es gibt doch diese Installationen mit dieser kleinen Partition C, und Windows ist auf D).


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.

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