Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Verzeichnisangaben mit enthaltenen Umgebungsvariablen (https://www.delphipraxis.net/181898-verzeichnisangaben-mit-enthaltenen-umgebungsvariablen.html)

Der schöne Günther 16. Sep 2014 11:01

Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Es ist wieder Zeit für dumme Fragen: Warum kann ich auf der Konsole einfach sagen
Code:
C:\>cd %public%\Pictures

C:\Users\Public\Pictures>echo %public%
C:\Users\Public

C:\Users\Public\Pictures>
?

Ist "CD" so schlau und zerlegt sein Argument in mehrere Teile, liest mit "%" maskierte Teile als Umgebungsvariable aus und und und? Ich kenne unter der WinApi nur SetcurrentDirectory(LPCTSTR) und das steigt mit einem "Fehlercode 2: Das System kann die angegebene Datei nicht finden" aus.

Gibt es noch mehr oder schlichtweg keine einfache Lösung?

Dalai 16. Sep 2014 11:07

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Die CMD löst Umgebungsvariablen natürlich auf, d.h. das CMD-interne Kommando CD bekommt einen absoluten Pfad übergeben (bzw. den Variableninhalt). In einem Delphi-Programm muss man mit ExpandEnvironmentStrings von Hand dafür sorgen.

MfG Dalai

Der schöne Günther 16. Sep 2014 11:25

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Oh, ExpandEnvironmentStrings(..) und das Gegenstück PathUnExpandEnvStrings(..) kannte ich gar nicht.

Danke :-)

hathor 16. Sep 2014 13:08

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Ausserdem:
Befehle im CMD-Fenster ergeben andere Path-Variablen als wenn sie in einem WINDOWS-Programm aufgerufen werden.

Dalai 16. Sep 2014 15:52

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Zitat:

Zitat von hathor (Beitrag 1272768)
Ausserdem:
Befehle im CMD-Fenster ergeben andere Path-Variablen als wenn sie in einem WINDOWS-Programm aufgerufen werden.

Kannst du das mal näher erläutern? Ich wüsste nämlich nicht, wo da ein Unterschied herkommen soll. Umgebungsvariablen sind Umgebungsvariablen und die sind für alle Programme gleich, jedenfalls wenn die Programme diese nicht ändern.

MfG Dalai

Der schöne Günther 16. Sep 2014 16:03

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Oder die Programme die sie aufrufen ihnen andere Umgebungsvariablen mitgeben.

EWeiss 16. Sep 2014 16:31

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Verstehe jetzt dein Problem nicht.

Ich mach das auf diese weise und die API sollte eigentlich bekannt sein.

Code:
    'Setze den Pfad zum BassPath
    BassPath = "%Path%;" & App.Path & "\BassLib"
    SetEnvironmentVariable "Path", BassPath
Beispiel aus meinem Mediaplayer in VB.

gruss

Der schöne Günther 16. Sep 2014 16:55

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Es ging darum, ob man WinApi-Routinen (welche Pfade erwarten) eventuell auch mit bestehenden Umgebungsvariablen füttern kann. Nicht Umgebungsvariablen zu setzen ;-)

EWeiss 16. Sep 2014 17:00

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1272803)
Es ging darum, ob man WinApi-Routinen (welche Pfade erwarten) eventuell auch mit bestehenden Umgebungsvariablen füttern kann. Nicht Umgebungsvariablen zu setzen ;-)

Jo und wenn nicht dann setzt man sie halt.
Bleibt doch das gleiche.

gruss

p80286 16. Sep 2014 17:14

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen
 
Zitat:

Zitat von Dalai (Beitrag 1272791)
Zitat:

Zitat von hathor (Beitrag 1272768)
Ausserdem:
Befehle im CMD-Fenster ergeben andere Path-Variablen als wenn sie in einem WINDOWS-Programm aufgerufen werden.

Kannst du das mal näher erläutern? Ich wüsste nämlich nicht, wo da ein Unterschied herkommen soll. Umgebungsvariablen sind Umgebungsvariablen und die sind für alle Programme gleich, jedenfalls wenn die Programme diese nicht ändern.

MfG Dalai

Würde mich jetzt aber auch interessieren, das Users<->Benutzer Gewurschtel ist es ja wohl nicht oder meinst Du das Codepage-Problem
Zitat:

C:\Users\xxxxx\Desktop>echo ³cksel
³cksel

C:\Users\xxxxxx\Desktop>pause
Zitat:

echo ücksel
pause
Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Seite 1 von 2  1 2      

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