Hallo Leute
Könntet ihr mir kurz helfen? Ich suche einen Weg, den Pfad herauszufinden, in welchem sich das Programm befindet.
getcwd() nützt mir in diesem Fall nichts, da das Programm auch über eine Verknüpfung aufgerufen werden kann, und dann liefert getcwd() das Arbeitsverzeichnis der Verknüpfung...
Kann mir Jemand helfen?
Danke schon Im Voraus!
P.S. Ich programmiere in C/C++ oder mit Windows-API
Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge
Hi,
mittels
void _searchenv( const char *filename, const char *varname, char *pathname );
findest Du den Ort, von wo aus Dein Programm aufgerufen worden ist.
Das kann natürlich auch eine Verknüpfung auf die eigentliche Datei sein.
Parameter:
filename = argv[0], notfalls vorher mit splitpath den eigentlichen Namen
des Programms extrahieren.
varname = Environmentvariable PATH. (Achtung, case sensitive)
in pathname wird dann der komplette Programmname inklusive dem Pfad reingeschrieben.
Dazu muß diese Variable groß genug alloziert sein (_MAX_PATH aus stdlib.h)
Normalerweise haben Verknüpfungen die Dateiendung *.lnk.
Um die Eigenschaften einer Verknüpfung zu untersuchen
kannst Du entweder die Interfaces IShellLink und IPersistFile (C++)
oder die C Funktion SHGetFileInfo() nehmen.
Lies einfach mal unter
http://home.arcor.de/cpp_kurs/mfc/mfc/kap7/lektion2.htm
nach.
Gruss, vergisses