registry
-
Hallo!
Frage: Wie kann ich in der Registry unter irgendeinem bestimmten Schlüssel einen neuen Namen (Wert) erzeugen?Ausschnitt:
HKEY hkey;
char dest[256]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";if (RegOpenKeyEx(HKEY_CURRENT_USER,dest,0,KEY_ALL_ACCESS,&hkey)==ERROR_SUCCESS)
{
if (RegSetValue(HKEY_CURRENT_USER,dest,REG_SZ,"Hallo",256)==ERROR_SUCCESS)
printf ("OK");
}Will jetzt unter dem Schlüssel Run einen Wert anlegen. Wie funkt des??
-
HKEY hKey ; DWORD dwVersion = 0 ; RegOpenKeyEx (HKEY_CURRENT_USER, "Software\\EArchiver", 0, KEY_ALL_ACCESS, &hKey) ; RegSetValueEx (hKey, "Path", 0, REG_SZ, (BYTE*) "c:\", strlen ("c:\")) ; RegSetValueEx (hKey, "Version", 0, REG_DWORD, (BYTE*) &dwVersion, sizeof (DWORD)) ; RegCloseKey (hKey) ;
ist nur ein Bsp. der Rest steht in den FAQ
-
HKEY nenKey; DWORD cbData; char app[1000]; strcpy(app,"c:\\pfad\\Zu\\Deinem\\Programm.exe"); cbData=lstrlen(app)+1); RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_READ|KEY_WRITE,&nenKey); RegSetValueEx(nenKey,"nenProgramm",0,REG_SZ,app,cbData); // <= In der Zeile liegt dein Fehler! // ...da haste nämlich als "value" nen Key angegeben (2. Parameter!)
[ Dieser Beitrag wurde am 02.02.2003 um 22:14 Uhr von geeky editiert. ]
-
Danke danke!
-
Hallo nochmal!
Hab den Programm - Code von geeky ausprobiert! Mein VC - Compiler meldet folgende Fehlermeldung:
error C2664: 'RegSetValueExA' : Konvertierung des Parameters 5 von 'char [1000]' in 'const unsigned char *' nicht moeglich
Was tu ich da dagegen?
-
Probier's mal so, wie es in den FAQ steht:
BYTE cString[]="Hallo, das ist der eigentliche Wert, der unter dem Namen EintragsName gespeicehrt wird"; RegSetValueEx(hKey,"EintragsName",0,REG_SZ,cString,strlen(cString)+1);
-
Danke! Funkt so!
Nur jetzt hab ich das Problem, dass ich den aktuellen Dateipfad auf einen char[255] gespeichert hab. Weiss nicht, wie ich den String jetzt auf unsigned char speicher! Kann mir da nochmal jemand helfen?
-
so wie ich es oben gemacht habe (BYTE*)
-
Huch, casten vergessen