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/)
-   -   Delphi Aktuelles Verzeichnis (https://www.delphipraxis.net/74285-aktuelles-verzeichnis.html)

Martin K 31. Jul 2006 23:49


Aktuelles Verzeichnis
 
Hi,

wie erhalte ich das aktuelle Verzeichnis?
Also allgemein das Verzeichnis, nicht speziell auf eine Anwendung bezogen wie GetCurrentDir.

Bei mir ist das aktuelle Verzeichnis (wenn ich bei Start->Ausführen "" eingebe) identisch mit %HomePath%, also:
C:\Dokumente und Einstellungen\Martin Kluge

Ist das immer so ?
Wie kann ich generell das aktuelle Verzeichnis mit Delphi auslesen ?

Luckie 31. Jul 2006 23:52

Re: Aktuelles Verzeichnis
 
GetCurrentDir liefert das aktuelle Verzeichnis.

Martin K 31. Jul 2006 23:55

Re: Aktuelles Verzeichnis
 
:shock: GetCurrenDir liefert mir das Verzeichnis, in dem meine Anwendung gestartet wurde.

z.B. Wenn ich die Eingabeaufforderung starte, ist das Verzeichnis auch immer
C:\Dokumente und Einstellungen\Martin Kluge.
Oder über Start->Ausführen :gruebel:

Christian Seehase 31. Jul 2006 23:59

Re: Aktuelles Verzeichnis
 
Moin Martin,

Zitat:

Zitat von Martin K
GetCurrenDir liefert mir das Verzeichnis, in dem meine Anwendung gestartet wurde.

dann benutze mal eine Öffnen- oder Speicherndialog mit Auswahl einer Datei aus einem anderen Verzeichnis, und lass' Dir dann noch mal das akutelle Verzeichnis mit GetCurrentDir anzeigen.

[EDIT]
Oder starte das Programm über einen Link oder ShellExecuteEx, wobei Du das Arbeitsverzeichnis angibst.
Natürlich darf das Arbeitsverzeichnis nicht das des Programmes sein ;-)
[/EDIT]

3_of_8 1. Aug 2006 00:00

Re: Aktuelles Verzeichnis
 
GetCurrentDir öffnet denke ich mal das Arbeitsverzeichnis.

Martin K 1. Aug 2006 00:06

Re: Aktuelles Verzeichnis
 
Das ist mir schon klar.
Zitat:

Zitat von Martin K
GetCurrenDir liefert mir das Verzeichnis, in dem meine Anwendung gestartet wurde.

Damit meine ich ja das Verzeinis, wo die Anwendung gestartet wurde nicht wo die EXE liegt.
Meinetwegen heißt das Arbeitsverzeichnis.

Vielleicht muss ich die Frage anders formulieren:
Warum verwendet Start ->Ausführen als Arbeitsverzeichnis %HomePath% ?
Ist das immer so?

Michael Habbe 1. Aug 2006 00:36

Re: Aktuelles Verzeichnis
 
Mit GetCurrentDir bekommst Du den Inhalt einer globalen (Windows-)Variable, welches das aktuell eingestellte Verzeichnis enthält. Du kannst dieses mit SetCurrentDir verändern. Alle Programme, die nur mit GetCurrentDir z.B. ihr Datenverzeichnis abfragen kannst Du hiermit zum Abschmieren bringen.

Wenn Du also wichtige Datenpfade ermittelst, nehme niemals GetCurrentDir dazu (Erfahrungswerte, lange Debugsitzungen :kotz: ).

Wenn Du den Pfad Deiner Anwendung ermitteln willst, unabhängig davon, wie oder wo sie gestartet wurde, benutze "ExtractFilePath(ParamStr(0))". Da steht alles drin.

Martin K 1. Aug 2006 14:37

Re: Aktuelles Verzeichnis
 
Zitat:

Zitat von Michael Habbe
Mit GetCurrentDir bekommst Du den Inhalt einer globalen (Windows-)Variable, welches das aktuell eingestellte Verzeichnis enthält. Du kannst dieses mit SetCurrentDir verändern. Alle Programme, die nur mit GetCurrentDir z.B. ihr Datenverzeichnis abfragen kannst Du hiermit zum Abschmieren bringen.

Das denke ich nicht.
IMHO hat jede laufende Anwendung sein eigenes CurrentDir und es gibt kein globales.
Bzw. ich dachte es gäbe ein globales, (z.B. bei Start->Ausführen = %HomePath%) aber anscheinend ist das nicht so.
Auf jeden Fall bekommt man das globale Arbeitsverzeichnis - falls es ein solches geben sollte - nicht mit GetCurrentDir.

Getestet:
Einfach zwei Delphi-Programme starten, in einem wird per ButtonClick GetCurrentDir ausgelesen und in dem anderen mit SetCurrentDir z.B. das Arbeitsverzeichnis auf C:\ festgelegt.
Lege ich das Arbeitsverzeichnis fest, hat sich aber GetCurrentDir im anderen Programm nicht geändert!

Luckie 1. Aug 2006 14:44

Re: Aktuelles Verzeichnis
 
Einfach im PSDK nachgucken:
Zitat:

The GetCurrentDirectory function retrieves the current directory for the current process.

Martin K 1. Aug 2006 14:49

Re: Aktuelles Verzeichnis
 
Eben:
Zitat:

[...] for the current process.
Meine Frage war, ob es ein globales CurrentDir gibt, also systemweit. :gruebel:
(anscheinend nicht...)

//Edit:
Aber trotzdem danke an alle, für eure Bemühungen :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Seite 1 von 2  1 2      

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