Problem mit RegSetValueEx

SCIPIO-AEMILIANUS

aka Dubdidadu
Ich hab folgenden Code:
Code:
#include <windows.h>



main(void)
{
    HKEY hKey;
    RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\Run\\",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0);
    DWORD dwNumber=10;
    RegSetValueEx(hKey,"EintragsName",0,REG_DWORD,(BYTE*)&dwNumber,sizeof(DWORD));
}

Ich denke mal, dass der wohl nicht leichter zu Schreiben ist. Wie man sieht will ich ein DWORD Wert in den Autorun Ordner reinschreiben. Mein Problem es werden nirgends Fehler angezeigt, und der Wert erscheint nicht in der Registry.
 
Ich habs hingekriegt.
Code:
if(RegCreateKeyEx(HKEY_CURRENT_USER,TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),0,NULL,0,KEY_SET_VALUE,NULL,&hkey,&dwDisposition)== ERROR_SUCCESS)
{ 
     value=0;
     dwType = REG_DWORD;
     dwSize = sizeof(DWORD);
     RegSetValueEx(hkey, TEXT("hi"), 0, dwType, (PBYTE)&value, dwSize);   
     RegCloseKey(hkey);
}
Jetzt würd ich aber gern noch vorher den Wert dort abfragen, der da steht. Für diesen Zweck hab ich RegQueryValueEx gefunden. Mein Problem ist, dass ich schaffe einen String auszulesen, aber kein DWORD. Und jetzt wollt ich mal gefragt haben, ob da jemand wüsste wies gehen könnte.
 
Hallo,

Ich bin gerade an das selbe Problem gestoßen, funktioniert genaus wie wie bei einem String nur einfacher, habe es folgendermaßen gelöst:

C++:
DWORD value;	
DWORD lpcbData = sizeof(DWORD);
ret = RegQueryValueExA(	   rhkey,
				  	   keyname.c_str(),
				  	   NULL,
				  	   NULL,
				  	   (PBYTE)&value,
				  	   &lpcbData  );
RegCloseKey(rhkey);
printf("%d",value);

Ich denke vor 3 Jahren wär es dir nützlicher gewesen :p

mfg. Poseidon
 
Zurück