Problem mit Registry
-
Ich starte mein Programm wie folgt mit Windows:
char phadname[500]; HKEY hKey; HMODULE hMe = GetModuleHandle(NULL); DWORD nRet = GetModuleFileName(hMe, phadname, 500); egCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\",&hKey); RegSetValueEx(hKey,"Test1",0,REG_SZ,phadname,sizeof(phadname)); RegCloseKey(hKey);Aber es startet nicht mit Windows und wenn ich in der Registry schaue ist der Wert drinnen,habe das PRogramm von C:\ geöffnet des heißt der Wert müsste normal "C:\Test.exe" sein,aber der Wert ist "C:\Test.exe.."!
Warum?
-
Du solltest anstelle "sizeof(phadname)" vielleicht "strlen(phadname)+1" übergeben...
-
Danke klappt Prima!!!
-
Und des klappt immer also auf jedem Win System oder muss es für deinen Tipp bestimmte Voraussetzungen geben?
-
na überleg doch mal was sizeof macht und was strlen macht.
-
sizeof = Ermitteln der Größe (Byte)
strlen = Ermitteln wie viele Platz noch in nem String frei ist oda so
Progge noch net lange mit C
xD
-
DWORD dwResult = GetModuleFileName(NULL, phadname, 500);sollte eigentlich auch gehen

2. strlen liefert dir die Anzahl an zeichen bis zum Terminierungszeichen ...
-
(D)Evil schrieb:
DWORD dwResult = GetModuleFileName(NULL, phadname, 500);sollte eigentlich auch gehen

Jop hat nur den Nachteil, das wenn man die Größe von 'phadname' ändert, diese Angabe nicht mehr stimmt. Daher ist am besten:
sizeof(phadname) / sizeof(phadname[0])
-
Ja meine Änderung war nur darauf bezogen, das er sich nicht extra das Handle des Moduls vorher holen muss

-
Ahso joar stimmt
, habsch übersehen
.
-
Könntet ihr mir mal ein beispiel programm schreiben??
Bitte.
Hab nämlich noch große probleme bei der eintragung in die Registry
mfg Pucki