C / Auslesen des Aktuellen Pfades

OhneNick

Grünschnabel
Hallo zusammen.

Weiss jemand wie ich den aktuellen pfad in dem sich das programm befinden auslesen und in ein String kopieren kann?

Und wie ist es möglich mit einem system() call etwas zu registrieren?


Gruss
OhneNick
 
Zum ersten Punkt:

Code:
CHAR szDirName[MAX_PATH];
GetModuleFileName(NULL, szDirName, MAX_PATH-1);
*strrchr(szDirName, '\\') = 0;

Zum zweiten Punkt:

Was willst Du denn registrieren?
 
Zum ersten.

Kannst du mir noch eine beschreibung dazu schreiben? komme nicht draus was es genau macht. (bin noch azubi und am c für mich erweitern)

zu 2

ich möchte gerne dieses file das ich schreibe in den run setzen, damit es immer gestartet wird wenn der pc aufstartet.
 
GetModuleFileName schreibt den Anwendungspfad in das char[], das als zweiter Parameter übergeben wird. Der letzte Parameter gibt die maximale Pfadlänge an (unter Windows glaube ich 255 Zeichen, MAX_PATH ist eine vordefinierte Konstante, in der dieser Wert - oder eben der richtige - steht). Der erste Parameter ist ein Handle auf das Modul, für den der Pfad zurück gegeben werden soll. NULL heißt, es soll der Pfad für die ausführbare Datei zurück gegeben werden, die den Call ausführt (also GetModuleFileName() aufruft).

Für den Autostart gibt es mehrere Möglichkeiten. Die einfachste ist das Anlegen eines Links im Autostart-Ordner, die etwas kompliziertere die des Schreibens eines entsprechenden Wertes in die Registry. Mit der MSDN oder 'nem gescheiten Buch sollte das aber machbar sein (ich hab keine Lust und Zeit, das jetzt ausführlich zu erklären :p)
 
Ich neheme den pfad in ein string.
dann setze ich den string an die gewünschte in den string call:
Z.B so

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ /v testlauf /t REG_SZ /d test.exe

und dann mache ich einen system(call);
sollte doch gehen oder?
 
Garantie würde ich nich drauf geben, aber sieht schon net schlecht aus. ;)

btw: Wieso nimmst Du nicht die MFC-Funktionen für die Registry?
 
Zurück