Я написал небольшую программу, которая перехватывает клавиатуру и изменяет значение реестра при нажатии клавиши. Вот код обратного вызова:Значение реестра не сохраняется при нажатии клавиши
LRESULT WINAPI keyDownEvent(int nCode, WPARAM wParam, LPARAM lParam)
{
if ((wParam == WM_SYSKEYDOWN) || (wParam == WM_KEYDOWN))
{
KBDLLHOOKSTRUCT kbdStruct = *(((KBDLLHOOKSTRUCT *) lParam));
if ((kbdStruct.vkCode == VK_LWIN) || (kbdStruct.vkCode == VK_RWIN))
{
RegSetValueEx(key, TEXT("MakeAllAppsDefault"), NULL, REG_DWORD, (const BYTE*) DISABLE_APPS_VIEW, sizeof(DISABLE_APPS_VIEW)); // Set value to 0 (OFF)
}
}
return CallNextHookEx(NULL, nCode, wParam, lParam); // Pass info to next hook procedure
}
Возвращаемое значение RegSetValueEx == ERROR_SUCCESS, что означает, что значение создается, но при открытии реестра, значение остается прежним. Есть ли что-то, что я делаю неправильно?
DWORD DISABLE_APPS_VIEW = 0;
DWORD ENABLE_APPS_VIEW = 1;
Что такое 'DISABLE_APPS_VIEW' и' ENABLE_APPS_VIEW'? –
@JonathanPotter: 'DWORD DISABLE_APPS_VIEW = 0;' ' DWORD ENABLE_APPS_VIEW = 1;' – noobprohacker
Похоже, вы не передавая ** ** адрес из них 'RegSetValueEx'. –