Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Registry-Wert (string) ändern mit Unicode

Sovebämse / 1 Antworten / Baumansicht Nickles

Hallo

Als blutiger Anfänger hab ich's noch nicht so mit den Umwandlungen von strings und chars. Ich habe wxWidgets als Unicode kompiliert und möchte nun einfach einen Registry-Wert (REG_SZ) ändern. Mit diesem Code für einen REG_DWORD klappt es problemlos:

  HKEY hkey;
  HKEY KEY = HKEY_CURRENT_USER;
  DWORD value = 1;

  RegOpenKeyEx(KEY,L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ControlPanel",0, KEY_ALL_ACCESS,&hkey);
  RegSetValueEx(hkey, TEXT("AllItemsIconView"), 0, REG_DWORD, (const BYTE*)&value, sizeof(value));
  RegSetValueEx(hkey, TEXT("StartupPage"), 0, REG_DWORD, (const BYTE*)&value, sizeof(value));
  RegCloseKey(hkey);

Was muss ich ändern, wenn ich nun anstatt einen DWORD-Wert von 1 einen SZ-Wert, also einen String, "xy" ändern möchte? Speziell wird sich ja dann wohl das REG_DWORD,(constBYTE*)&value,sizeof(value)) ändern. Aber wie gesagt, bei diesen Umwandlereien blick ich noch nicht durch. Ich habe den Code oben im Netz gefunden, aber für einen REG_SZ hab ich nichts entdeckt.

Vielen Dank für die Unterstützung.
Thomas

bei Antwort benachrichtigen
PaoloP Sovebämse „Registry-Wert (string) ändern mit Unicode“
Optionen

Du muss den 4. Parameter(REG_DWORD) von RegSetValueEx ändern. Der sagt der Registry das er das als DWORD speichern wollen. (Mit Encoding/Unicode hat das Problem erstmal nix zu tun)

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen