C ++ Невозможно правильно отредактировать значение REG_SZ в реестре

То, что я пытаюсь сделать, это отредактировать (если они не существуют, а затем создать) значения задержки клавиатуры и значения повторения REG_SZ. Они типа REG_SZ. Этот код, который я создал, работал для значений DWORD, и я смог установить «значения» для DWORD. Но теперь, когда я пытаюсь создать REG_SZ и отредактировать первые значения до 0, а вторые до 31, они оба терпят неудачу, и появляется странный «ящик», выглядящий как значения вещей REG_SZ.

В чем может быть проблема?

void SetValue(HKEY hKey, LPCTSTR lpValue, DWORD value)
{
LONG nError = RegSetValueEx(hKey, lpValue, NULL, REG_SZ, (LPBYTE)&value, sizeof(DWORD));
}
DWORD GetValue(HKEY hKey, LPCTSTR lpValue)
{
DWORD value;        DWORD size = sizeof(value); DWORD type = REG_SZ;
LONG nError = RegQueryValueEx(hKey, lpValue, NULL, &type, (LPBYTE)&value, &size);
if (nError==ERROR_FILE_NOT_FOUND)
value = 0; // The value will be created and set to data next time SetVal() is called.
else if (nError)
cout << "Error: " << nError << " Could not get registry value " << (char*)lpValue << endl;
return value;
}int Keyboard()
{

static DWORD v1, v2;

HKEY hKey = OpenKey(HKEY_CURRENT_USER,L"Control Panel\\Keyboard");

v1 = GetValue(hKey, L"KeyboardDelay");
v2 = GetValue(hKey, L"KeyboardSpeed");

v1 = 0;
v2 = 31;

SetValue(hKey, L"KeyboardDelay", v1);
SetValue(hKey, L"KeyboardSpeed", v2);

RegCloseKey(hKey);

return 0;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector