Registry-Werte schreiben
-
hi,
ich (unerfahren, anfänger) brauche mal wieder hilfe bei einem stück code.
hier mein problem: ich muss in Regsitry-Werte schreiben, kriege es aber nicht hin.mein ansatz:
typedef unsigned char uchar; typedef unsigned long ulong; #define wait() system("pause>nul") // ich weiß, geht auch anders HKEY hkey; if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, // Host-Key "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", // Unerschlüssel 0, // immer NULL KEY_READ, // Zugriffsberechtigungen zum öffnen &hkey // HKEY-Handle ) ) { textcolor(FG_RED); cout << "Fehler: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\" << "CurrentVersion\\Winlogon konnte nicht geoeffnet werden.\n" << "beliebige Taste zum Beenden ...\n"; wait(); exit(-1); } uchar *data = new uchar[256]; data = "0"; ulong size = 256; RegSetValueEx( hkey, "AutoAdminLogon", 0, REG_SZ, data, size ); RegCloseKey( hkey );... funktioniert nicht, der Wert bleibt (wahrscheinlich logischer Weise) unverändert.
kann mir bitte jemand bei diesem wahrscheinlich ziemlich banalen problem helfen?vielen dank schon mal!
mfg, julian
-
KEY_READ ist falsch.
MfG,
*Ranner*
-
Beim Programmieren bitte auch etwas nachdenken:
KEY_READ, // Zugriffsberechtigungen zum öffnenDu sagst doch selber, dass du schreiben willst. Jetzt überleg mal, ob KEY_READ dir da den Schlüssel mit den nötigen Berechtigungen öffnet.
-
ja, das hab ich auch schon gemerkt, aber auch mit KEY_ALL_ACCESS und KEY_WRITE ging es nicht, deshalb hab ich den post so stehen lassen, aber vergessen, zu korrigieren, sorry!
jetzt weiß ich aber, woran es lag: die projekt-datei (C++BuilderX) war, warum auch immer, beschädigt, sodass keine fehlermeldungen ausgegeben wurden, aber das programm trotzdem nicht das gemacht hat, was es soll (kommt beim C++BuilderX manchmal vor).
neues projekt->alte sources importiert->FUNKTIONIERT!
mfg, julian