Seite 1 von 1

Programm mit Firefox gestartet ->GetCurrentDirectory

Verfasst: 16.09.2008 01:04
von Ractur
Hallo,

ich habe heute "emuliert" mein Programm per Firefox downzuloaden, und dann vom Firefox mittels Doppeklick ausfüren zu lassen.

Doch dann stimmen plötzlich die Pfade nich mehr :shock:

Wenn ich das Programm normal aus dem Verzeichnis herraus starte funktioniert alles wunderbar, lasse ich mein Programm durch FireFox starten, stimmten sämtliche Pfade nicht mehr.

GetCurrentDirectory() ermittelt dann den Pfad:

C:/Dokumente und Einstellungen/admin

Und nicht den Speicherort c:/Downloads

Wie kann das sein? Ausgeführt wird das Programm doch in c:/Downloads dort liegt doch auch der Source/Datei.

Wie kann ich das umgehen, ohne das ich ein Setup davor packe? Oder mache ich was falsch? Wieso wird das Programm denn in C:/Dokumente und Einstellungen/admin offensichtlich ausgeführt obwohl die Datei in c:/Downloads liegt?

Ich könnte vor Programmstart prüfen ob auch in der GetCurrentDirectory() das entsprechende Programm liegt, und wenn nicht den Programmstart abbrechen, allerdings scheint mir das nicht gerade die eleganteste Lösung.

Bin für jede Hilfe Dankbar! Grüsse Ractur

Verfasst: 16.09.2008 01:41
von Franky
Eine Lösung wäre z.B.

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFileName()))
Den Grund dafür, dass der Pfad ein Anderer ist kann ich dir nicht nennen, was nutzt n du, Vista?


Mfg Franky

Verfasst: 16.09.2008 01:42
von ts-soft
Mit GetCurrentDirectory wird das aktuelle Verzeichnis ermittelt, nicht das
Programmverzeichnis, auch wenn dies oft gleich ist!

Wenn FireFox also beim Programmaufruf das aktuelle Verzeichnis zur Exe
nicht setzt, bzw. z.B. bei ShellExecute_() der dritte Parameter nicht gesetzt
wurde, stimmt GetCurrentDirectory und Programmdir nicht überein.
Mit "GetPathPart(ProgramFilename())" kannste das aber selber ermitteln, mit
"SetCurrentDirectory(GetPathPart(ProgramFilename()))" kannste den Pfad selber setzen.

Gruß
Thomas

// edit
zu langsam, aber wenigstens mehr Erläuterungen :wink:

Verfasst: 17.09.2008 21:59
von Ractur
Hallo,

danke sehr Euch beiden :allright: Hat mir prima weitergeholen, so funktioniert das nun auch mit der Pfadermittlung!

Ich hab nun zum Programmstart einfach
SetCurrentDirectory(GetPathPart(ProgramFilename()))
eingefügt, funktioniert tadellos :D

Danke nochmals für die Hilge, bin echt begeistert wie einem hier geholfen wird, danke sehr!

Grüsse Matthias