Programm mit Firefox gestartet ->GetCurrentDirectory

Anfängerfragen zum Programmieren mit PureBasic.
Ractur
Beiträge: 128
Registriert: 24.06.2008 11:51

Programm mit Firefox gestartet ->GetCurrentDirectory

Beitrag 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
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag 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
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Ractur
Beiträge: 128
Registriert: 24.06.2008 11:51

Beitrag 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
Antworten