Winapi 如何注册自定义Win+;Windows 8上的V热键?

Winapi 如何注册自定义Win+;Windows 8上的V热键?,winapi,windows-8,hotkeys,registerhotkey,Winapi,Windows 8,Hotkeys,Registerhotkey,可以在Windows 8之前的Windows版本上注册Win+V热键。下面是使用此组合的示例应用程序 在Windows8发布预览版中,我注意到Windows8已经控制了很多涉及WindowsKey的热键,但是Win+V似乎没有被使用。以下代码将允许我注册Win+CTRL+V的热键: #include <Windows.h> int _tmain(int argc, _TCHAR* argv[]) { if (RegisterHotKey( NULL,

可以在Windows 8之前的Windows版本上注册Win+V热键。下面是使用此组合的示例应用程序

在Windows8发布预览版中,我注意到Windows8已经控制了很多涉及WindowsKey的热键,但是Win+V似乎没有被使用。以下代码将允许我注册Win+CTRL+V的热键:

#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    if (RegisterHotKey(
        NULL,
        1,
        MOD_WIN | MOD_NOREPEAT | MOD_CONTROL,
        0x56))  // 0x56 is 'v'
    {
        _tprintf(_T("Hotkey 'CTRL+WIN+V' registered, using MOD_NOREPEAT flag\n"));
    }

    MSG msg = {0};
    while (GetMessage(&msg, NULL, 0, 0) != 0)
    {
        if (msg.message == WM_HOTKEY)
        {
            _tprintf(_T("WM_HOTKEY received\n"));            
        }
    } 

    return 0;
}

有没有办法强制注册Windows+V热键?我认为可能有一种方法可以通过Win32 API挂钩实现这一点,但我已经有一段时间没有研究过了。更容易实现这一点的支持选项将不胜感激。

以下是或中Windows 8键盘快捷键的完整列表。Win+V已在使用中;它在通知中循环。坚持Win+CTRL+V可能是你最好的选择

注册表快捷键功能始终为系统保留Windows快捷键。甚至表明:

MOD_-WIN
0x0008

两个WINDOWS键都被按下。这些键标有Windows徽标。包含WINDOWS键的键盘快捷键保留供操作系统使用

注册自己的非系统热键时,应选择不同的[一组]修改键

此外,正如其他人所提到的,+V键盘快捷键已经在使用中。当您尝试注册已注册的热键时,
RegisterHotKey
失败


很多Win32函数都会设置一个错误代码,指出它们不工作时到底出了什么问题。如果文档中指出了这一点,您可以调用来确定错误代码是什么。这将为您提供更多信息,帮助您调试问题。

使用明文程序。。。它使用全局键盘挂钩。{在我的机器上工作}


Windows徽标+V:启动剪贴板
我想您知道Win+按键属于系统
if (RegisterHotKey(
    NULL,
    1,
    MOD_WIN | MOD_NOREPEAT,
    0x56))  // 0x56 is 'v'
{
    _tprintf(_T("Hotkey 'WIN+V' registered, using MOD_NOREPEAT flag\n"));
}