Windows キーをプログラムにて無効にするには WH_GETMESSAGE をフックして,コールバック関数内で以下のようにする.
LRESULT WINAPI HookMsgProc(int code,WPARAM wParam,LPARAM lParam)
{
LPMSG lpStrc = (LPMSG)lParam;
if( code < 0 ) {
return CallNextHookEx( lpOldMsgHook, code, wParam, lParam);
}
if( lpStrc->message == WM_USER + 260 ) {
// Windows キー押下
if( lpStrc->hwnd == FindWindow("Shell_TrayWnd", NULL) ) {
// タスクバーに送られるメッセージであればなにもしない
lpStrc->message = WM_NULL;
}
}
return CallNextHookEx( lpOldMsgHook, code, wParam, lParam);
}
プログラム的ではなく,起動時から無効にするには拙作の
KeyCtrl にて無効にすることが可能である.
参照