Datei aus Ordner öffnen


Funs

Still Fresh
Joined
Jan 20, 2008
Messages
47
Hi, ich benutze folgendes um eine exe datei, die im selben verziechnis ist, wie mein programm zu öffnen:
Code:
ShellExecute(NULL, "open", "programm.exe", NULL, NULL, SW_SHOW);

Nun liegt die zu öffnende .exe allerdings in einem ordner (der immernoch in dem selben ordner is, wie mein programm).

Wie gebe ich nun den pfad zu "programm.exe" an ohne einen pc-spezifischen-pfad zu benutzern?

hoffe auf hilfe

mfg Funs
 
Was meinst du mit "pc-spezifischen-pfad"? Dass du quasi \ oder / in der Pfadangabe verwenden kannst?
Wenn das so ist, kann ich dir gleich sagen, dass das nicht geht. ShellExecute() ist eine Windows-Funktion, das kriegst du unter Linux nicht kompiliert^^

Falls du jetzt eher relative Pfadangaben meinst, dann kannst du mit Hilfe des Handles deines Hauptprogrammes das Verzeichnis ermitteln, in dem es selbst liegt; dann einfach mit wsprintf() den Unterordner- und Programmnamen dranhängen, fertig :)
 
Ich will es auf jeden pc (windows) öffnen können, weil es aus dem unterordner geöffnet werden soll, wo MEIN programm drin ist, also kein C:\bla\bla\programm.exe....

Also mein c++ programm liegt unter:
Code:
C:\User\Desktop\Project\project.exe
und öffnen will ich jetz
Code:
C:\User\Desktop\Project\data\programm.exe

nur ich will es ohne C:\ usw haben, damit es überall funktioniert.




könntest du mir vllt (Anhand eines Bsp.) zeigen, wie das mit wsprintf() geht?
kenn mich noch nich so gut aus...
 
versuchs mal mit ".\data\programm.exe"
oder gehen relative Pfade dort nicht?
 
torro said:
versuchs mal mit ".\data\programm.exe"
oder gehen relative Pfade dort nicht?

Hab ich schon versucht mit nem Punkt gehst leider net
 
Und ohne Punkt?
Oder versuch es mal mit:

%CD%\data\programm.exe
%CD%/data/programm.exe
oder mal mit ./data/programm.exe mit oder ohne Punkt :D
:D
alles mal ausprobieren
 
kann der te mal sein source posten...? ich vermute hier eher einen anderen programmierfehler, als dass das programm nicht gestartet werden kann...
 
kein progammierfehler, ganz sicher, wenn die datei im gleiche directory is, also man kein pfad braucht gehts :)
werde %CD% ma probiern morgen.

könnte es vllt auch an ShellExecute liegen?
 
%CD% ist eigentlich ein Kommandozeilenparameter...keine Ahnung ob es geht :)
Versuchs einfach mal ;)
 
Schmeiß es doch einfach in win32 :>

Das könnte dir vlt. helfen :)
http://vlaurie.com/computers2/Articles/environment.htm
 
oder man versucht es einfach mal damit den backslash im queltext doppelt zu nehmen:
Code:
".\\data\\xyz.exe"
 
Wenn alles versagt kannst du auch eine nicht sehr schöne Lösung benutzen.

system("echo %cd% > txt.txt"); // Musst du nur einmal auf dem PC ausführen

Dann den Pfad aus txt.txt rauslesen, usw.

mfg
 
Back
Top