Windows 8 より前のバージョンの Windows では、Win+V ホットキーを登録することができました。この組み合わせを使用するアプリケーションの例はPureTextです。
Windows 8 Release Preview では、Windows 8 が Windows キーに関連する多くのホットキーを制御していることに気付きましたが、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;
}
Win + Vのみを登録するように変更すると、登録に失敗します。
if (RegisterHotKey(
NULL,
1,
MOD_WIN | MOD_NOREPEAT,
0x56)) // 0x56 is 'v'
{
_tprintf(_T("Hotkey 'WIN+V' registered, using MOD_NOREPEAT flag\n"));
}
Windows+V ホットキーの登録を強制する方法はありますか? Win32 API フックでこれを行う方法があるかもしれないと思いますが、それを見てからしばらく経ちました。これを達成するためのより簡単にサポートされるオプションがあれば幸いです。