regedit änderung...mit c++
-
REG_SZ (CString)und REG_DOWRD(DWORD) ändern ist einfach...
strDatax; <- der soll Binärwerte annehmen.// BINARY strDatax; <-- problem !!! DWORD dwSize = 1024; DWORD dwType; lxReturn = RegQueryValueEx( hKey, _T("SendUserGUID"), 0, &dwType, (BYTE *)strDatax.GetBufferSetLength((int)dwSize), &dwSize );
-
Was ist jetzt die Frage?
Blub?std::vector<uint8_t>(bzw. char, unsigned char, BYTE - was dir am besten reinpasst)?
OderCArray<BYTE>(oder char, ...)?Im Prinzip kannst du an RegQueryValueEx als "Ziel" alles übergeben was auch bei memcpy als "Ziel" OK wäre.
-
DWORD dwType = REG_BINARY; double d; DWORD dwSize = sizeof(d); HKEY hKey; LONG lxReturn = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Microsoft\\MediaPlayer\\Preferences"), 0, KEY_READ, &hKey) ; if( lxReturn == ERROR_SUCCESS ) { lxReturn = RegQueryValueEx(hKey, _T("SendUserGUID"), NULL, &dwType, (LPBYTE)&d, &dwSize) ; if( lxReturn == ERROR_SUCCESS ) { m_send = "alles ok"; UpdateData(FALSE); }Auf ein neues

m_send = "alles ok"; <- kommt nicht zur stande,warum?
ich will wissen ob ...SendUserGUID 00 oder 01 ist?
Der Compiler bringt keinen Fehler.
Wer findet den Fehler
-
Du solltest zuerst die Länge des "REG_BINARY" abfragen, dann kannst du die Korrekte Länge an RegQueryValueEx übergeben.
Und double als Datentyp ist Unsinn wenn du ein einfaches Byte abfragen willst.
-
kann nicht gehen, weil..
HKEY_LOCAL_MACHINE ist falsch.
sondern....
HKEY_CURRENT_USER
jetzt hab ich ein anderes Problem
SendUserGUID hat den Binärwert 00 und soll per funktion 01 bekommen.
wenn ich folgendes ausführe...
CString funkname = "SendUserGUID"; BYTE dwNumber= 01; RegSetValueEx(hKey,funkname,0,REG_BINARY,(BYTE*)&dwNumber,sizeof(DWORD));... hat SendUserGUID den Wert 01 cc cc cc
ich will aber 01 im regedit haben ?!
oder kann ich den Wert so lassen?
-
hehehe hab hinbekommen.
RegSetValueEx(hKey,funkname,0,REG_BINARY,(BYTE*)&dwNumber,sizeof(BYTE));
-
CString funkname = "SendUserGUID"; BYTE dwNumber= 01; RegSetValueEx(hKey,funkname,0,REG_BINARY,(BYTE*)&dwNumber,sizeof(BYTE));allerletzte Frage...
ich will 0a 00 00 00 als Wert haben
Dummerweise bekommme ich jetzt maximal FF aber keinen höheren Wert zugewiesen