То, что я пытаюсь сделать, это отредактировать (если они не существуют, а затем создать) значения задержки клавиатуры и значения повторения 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;
}
Задача ещё не решена.
Других решений пока нет …