Kann keinen Schlüssel in der Registry erzeugen
-
HKEY hKey; PCTSTR tszSubKey = _T(("SOFTWARE\\MyFolder")); DWORD disposition; DWORD my_dword = 56; // Open the key for writing, create if doesn't exist. RegCreateKeyEx(HKEY_LOCAL_MACHINE, tszSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &disposition); // Set the value to my_dword, 56. RegSetValueEx(hKey, "key_name", 0, REG_DWORD, (BYTE*)my_dword, sizeof(DWORD)); RegCloseKey(hKey);Wieso funktioniert das nicht? Ich arbeite unter Windows 7 und habe Administratorrechte.
-
Hat keine eine Idee, woran es liegen könnte?
-
RegSetValueEx(hKey, "key_name", 0, REG_DWORD, (BYTE*)&my_dword, sizeof(DWORD));Man beachte **&**my_dword
-
Du solltest dir Rückgabewerte auswerten, dann siehst Du warum es nicht klappt!
Vermutlich: Keine Rechte. (0x5)
-
Alle Rückgabewerte = 0.
-
Wird denn noch nicht einmal MyFolder erstellt? Hast du mal versucht, den Schlüssel unter HKEY_CURRENT_USER anzulegen?
key_name wird, wie geschrieben, nur angelegt, wenn die Adresse von my_dword übergeben wird.
-
VF schrieb:
Wird denn noch nicht einmal MyFolder erstellt? Hast du mal versucht, den Schlüssel unter HKEY_CURRENT_USER anzulegen?
key_name wird, wie geschrieben, nur angelegt, wenn die Adresse von my_dword übergeben wird.Ich habe den Fehler ausgebessert, danke. Bei HKEY_CURRENT_USER klappt es. Bei HKLM wird aber nicht mal der Ordner "MyFolder" angelegt. Wie gesagt, ich führe das Programm mit Administratorrechten aus.
-
Komischerweise funktioniert es, wenn ich den Ordner in "SOFTWARE\\MyFolder\\Wow6432Node" kopiere. Liegt das vlt. daran, dass ich ein 32 bit Programm auf einem 64 bit Windows 7 ausführe?
-
Auch als Admin kann man unter Win7 standardmäßig nicht alles machen.
Vgl. auch http://www.mydigitallife.info/2009/09/02/grant-read-write-full-control-permissions-on-registry-keys-fix-cannot-import-and-access-denied-error-in-regedit/
-
Es ist doch okay, wenn du es in HKEY_CURRENT_USER speicherst.
Somit kannst du auch für jeden User unterschiedliche Einstellungen anlegen.
-
Warum kann ich denn dort per Hand Registry-Keys erstellen?
-
Per Hand kannst Du es weil der Registry Editor elevated (also als Admin) läuft.
-
Bzgl. x86 und x64 siehe auch mein Artikel:
http://www.codeproject.com/KB/system/Reflection.aspx
-
Jochen Kalmbach schrieb:
Bzgl. x86 und x64 siehe auch mein Artikel:
http://www.codeproject.com/KB/system/Reflection.aspxHabe es auch schon gemerkt... Danke.