Autor Beitrag
Biarchiv
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: Do 05.06.03 13:08 
Hallo,

Wie kann ich wenn mein Program ganz normal läuft.
Das aktuelle Verzeichnis ermitteln wo ZB gerade eine Datei geöffnet wird?

Also Jemand startet Word / C:\programme\office

Danke...
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 05.06.03 13:32 
Das aktuelle Verzeichnis muss nicht zwangsläufig das Programmverzeichnis einer Datei sein. Vielleicht solltest du zuerst lernen, diese beiden Sachen auseinander zu halten.

Wenn du wissen willst, wo sich z.B. Word befindet, dann mache dich bitte über
ausblenden Delphi-Quelltext
1:
paramstr(0)					

schlau.

Wenn du wissen willst, welches Verzeichnis gerade das aktuell eingestellte ist, dann schau dir
ausblenden Delphi-Quelltext
1:
2:
GetCurrentDir
GetDir

an. Aber wie gesagt: das muss nicht mit dem Verzeichnis der Datei identisch sein!
Biarchiv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: Do 05.06.03 19:48 
Hallo,

Bei
ausblenden Quelltext
1:
2:
GetCurrentDir
GetDir


Leider gibt er mir nur das Laufwerk und Pfad von der gestartete Delphi App aus.
Er solte soch wenn gerade beim Explorer bin (blau makiert) und im Verzeichniss
c:\programme solte er das ausgeben.

In der Hilfe steht aber das das aktuelle Verzeichnis ermittelt wird.

Mache ich was falsch?
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 05.06.03 20:13 
extractfiledir(paramstr(0)) nur das verzeichnis wo deine exe datei liegt

_________________
MFG
Michael Springwald, "kann kein englisch...."
Biarchiv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: Fr 06.06.03 13:01 
Hallo,

Danke für die Antworten aber ich meinte was anderes.
Sorry ich kann mich nicht so gut ausdrücken.

Also ein Virenscanner überprüft im Hintergrund Dateien.
Er muss aber alle Dateien(Verzeichnisse) ermitteln die gerade aktiv
sind.

Also nicht ParamStr(0) oder das eigene ermitteln.

Wie kann ich das so wie ein Virenscanner das gerade aktuelle Verzeichniss ermitteln.

Danke
del1312
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190



BeitragVerfasst: Fr 06.06.03 13:11 
Hab mal auch noch ne Frage, wie ermittelt man den Namen des Programs?
Ich will das Programm im Autostart eintragen. Wie ich nun den Pfad ermitteln weiss ich ja nun :D aber wie bekomme ich noch den Namen der Exe raus?
Biarchiv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: Fr 06.06.03 14:10 
Hallo ecspooky,

ParamStr(0); Lauferwerk Pfad und Dateiname ZB c:\test\prog.exe
ExtractFileName(ParamStr(0)); nur Dateinamen prog.exe
MaxiTB
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 679

Win2000, WinXp, Workbench ;-)
D7 Ent, VS2003 Arch.
BeitragVerfasst: Fr 06.06.03 14:42 
Titel: Sorry - das ich mich reinwerfe ...
Wie bekommt man eigentlich wirklich das Programmverzeichnis ?

Hab mal gelesen, unter Linux bekomme ich per ParamStr(0) immer './'+Program ... das finde ich aber unlustig, weils gleichbedeutend mit dem aktuellem Verzeichnis ist %-) ... schon jemand Erfahrung damit gemacht ?

Zu deiner Frage ...

Es gibt tatsächlich nur ein aktuelles Verzeichnis, daß bekommst du mit GetCurrentDir ... es gibt auch nur ein Programmverzeichnis, daß kannst du aus ParamStr(0) bei Windows extrahieren.
Zitat:
Er muss aber alle Dateien(Verzeichnisse) ermitteln die gerade aktiv sind.


Meinst du damit vielleicht das aktuelle Verzeichnis von anderen Apps ?
Okay - da bin ich mir nicht sicher, aber ich denke, unter Win ist das aktuelle Verzeichnis global definiert - wenn du also deine App im Hintergrund laufen läßt und regelmäßig mit GetCurrentDir das Verzeicnis ausliest, wird es sich ändern.

Allerdings Vorsicht: Damit gehen viele Zugriffe verloren, weil sich das aktuelle Verzeichnis nur ändert, wenn:
a) Eine neue Applikation gestartet wird,
b) Standard-Windows-Open Dialog,
c) explizite Änderung durch eine andere Anwendung (wozu eigentlich a gehört - Explorer).

Wenn eine App z.B. per C:\Programme\Wuschi\Wuschi.dat auf diese Datei zugreift, dann kanns du das auf diese Weise nicht rausfinden.

Da bleibt dir nur noch etwas anderes - und das heißt ShellChangeNotifier - ist aber schon ein bisserl deftiger :wink:

_________________
Euer Mäxchen
Wer früher stirbt, ist länger tot.


Zuletzt bearbeitet von MaxiTB am Fr 06.06.03 15:36, insgesamt 1-mal bearbeitet
del1312
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190



BeitragVerfasst: Fr 06.06.03 14:56 
Danke klappt wunderbar! :D