调用RegisterHotKey()之后,它似乎可以正常工作,因为按时音量调高/降低不响应,但是当我调用UnregisterHotKey()恢复默认值时,除非启动设备,音量调高/降低仍然没有响应。如何恢复它们?谢谢。
void RestoreVolumeKeys()
{
hWndTray = FindWindow(_T("HHTaskBar"), NULL);
if(hWndTray)
{
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEDOWN);
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEUP);
}
else//HHTaskBar not found then try find Tray
{
hWndTray = FindWindow(_T("Tray"), NULL);
if(hWndTray)
{
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEDOWN);
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEUP);
}
}
}
最佳答案
您没有正确使用它。第二个参数不是虚拟密钥,它是您在RegisterHotKey()调用中使用的id
。
BOOL RegisterHotKey(HWND hWnd,
int id, // <=== this one
UINT fsModifiers,
UINT vk
);
始终检查winapi函数的返回值以查找类似的错误。