Hallo,
ich lese per GetModuleFileName den aktuellen Pfad eines Programmes aus und trage ihn anschließend in die Registry unter "Run" ein.
Problem:
Das Programm wird beim Neustart nicht gestartet, der EIntrag in der Registry ist aber vorhanden. Nun ist mir aufgefallen, dass der Programmpfad in der Registry so aussieht:
Diese drei Punkte am Ende sind meiner Auffassung nach falsch, ich weiß aber nicht, woher sie kommen. Wenn ich mir den Programmpfad ausgeben lasse tauchen dort nirgendwo die drei Punkte auf.
Wenn ich nun per regedit diesen Schlüssel öffne und mit OK schließe, sind die drei Punkte verschwunden. Das Programm startet jedoch trotzdem nicht automatisch.
Woran kann das liegen? Ich hatte erst an ein Problem mit der String-Termination gedacht, aber soweit ich das verstehe liefert GetModuleFileName ja einen null-terminierten String, sofern dieser nicht größer als der gegebene Buffer ist.
Zum Einsatz kommt in der aktuellen Entwicklungsumgebung Windows 2000 SP 0.
Gruß,
Trench
ich lese per GetModuleFileName den aktuellen Pfad eines Programmes aus und trage ihn anschließend in die Registry unter "Run" ein.
Code:
char buffer[MAX_PATH];
HKEY hkey;
GetModuleFileName(NULL,buffer,MAX_PATH);
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hkey,0)
RegSetValueEx(hkey,"MyProgram",0,REG_SZ,(const unsigned char*)buffer,sizeof(buffer));
Problem:
Das Programm wird beim Neustart nicht gestartet, der EIntrag in der Registry ist aber vorhanden. Nun ist mir aufgefallen, dass der Programmpfad in der Registry so aussieht:
Code:
C:\Documents and Settings\Administrator\Desktop\main.exe...
Diese drei Punkte am Ende sind meiner Auffassung nach falsch, ich weiß aber nicht, woher sie kommen. Wenn ich mir den Programmpfad ausgeben lasse tauchen dort nirgendwo die drei Punkte auf.
Wenn ich nun per regedit diesen Schlüssel öffne und mit OK schließe, sind die drei Punkte verschwunden. Das Programm startet jedoch trotzdem nicht automatisch.
Woran kann das liegen? Ich hatte erst an ein Problem mit der String-Termination gedacht, aber soweit ich das verstehe liefert GetModuleFileName ja einen null-terminierten String, sofern dieser nicht größer als der gegebene Buffer ist.
Zum Einsatz kommt in der aktuellen Entwicklungsumgebung Windows 2000 SP 0.
Gruß,
Trench