0

调用 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);

        }
    }
}
4

1 回答 1

2

您没有正确使用它。第二个参数不是虚拟键,它是id您在 RegisterHotKey() 调用中使用的。

BOOL RegisterHotKey(HWND hWnd,
    int id,                       // <=== this one
    UINT fsModifiers,
    UINT vk
);

经常检查 winapi 函数的返回值来发现这样的错误。

于 2012-04-20T01:33:03.977 回答