AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Verzeichnisangaben mit enthaltenen Umgebungsvariablen

Verzeichnisangaben mit enthaltenen Umgebungsvariablen

Ein Thema von Der schöne Günther · begonnen am 16. Sep 2014 · letzter Beitrag vom 17. Sep 2014
Antwort Antwort
Seite 1 von 2  1 2   
Der schöne Günther

Registriert seit: 6. Mär 2013
5.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 12:01
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?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.637 Beiträge
 
Delphi 5 Professional
 
#2

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 12:07
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
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 12:25
Oh, ExpandEnvironmentStrings(..) und das Gegenstück PathUnExpandEnvStrings(..) kannte ich gar nicht.

Danke
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 14:08
Ausserdem:
Befehle im CMD-Fenster ergeben andere Path-Variablen als wenn sie in einem WINDOWS-Programm aufgerufen werden.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.637 Beiträge
 
Delphi 5 Professional
 
#5

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 16:52
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
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 17:03
Oder die Programme die sie aufrufen ihnen andere Umgebungsvariablen mitgeben.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 17:31
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
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 17:55
Es ging darum, ob man WinApi-Routinen (welche Pfade erwarten) eventuell auch mit bestehenden Umgebungsvariablen füttern kann. Nicht Umgebungsvariablen zu setzen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 18:00
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
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Verzeichnisangaben mit enthaltenen Umgebungsvariablen

  Alt 16. Sep 2014, 18:14
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf