Zugriff auf Registry
-
Hallo,
eine Frage:
char *ModulePath; GetModuleFileName (NULL,ModulePath, MAX_PATH); HKEY hkey; HKEY KEY = HKEY_LOCAL_MACHINE; char place[100]= {"Software\\Microsoft\\Windows\\CurrentVersion\\Run"}; char name[100]= {"mswinsysexe"}; RegOpenKeyEx(KEY,(LPCTSTR)place,0, KEY_ALL_ACCESS,&hkey); RegSetValueEx(hkey, name, 0, REG_SZ, (BYTE *)ModulePath, strlen(ModulePath)); RegCloseKey(hkey);Warum führt das zum Problembericht senden-Dialog?
-
P.s.:
Absturz bei:GetModuleFileName (NULL,ModulePath, MAX_PATH);warum?
-
Hallo,
weil dein Zeiger nicht initalisiert ist, denk ich mal.
-
char *ModulePath;wird mit
GetModuleFileName (NULL,ModulePath, MAX_PATH);belegt, dachte ich...
-
Ja wird es, aber irgendwo im Speicherbereich deiner Anwendung und da scheinen wohl sensible Daten zuliegen. Man sollte nicht nur einen Zeiger definieren, sondern auch den Speicherberich dahinter groß genug bereitstellen.
-
Hab ich gerade auch gesehen...
Trotzdem Danke, läuft jetzt perfekt!
-
im übrigen musst du nicht unbedingt einen Zeiger verwenden

-
Id est
:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-157428.html
Wobei mit gerade auffällt, dass es eigentlich (besser) heißen sollte:GetModuleFileName(NULL, szFileName, sizeof(szFileName) / sizeof(szFileName[0]));Aber funktioniert natürlich beides.