Index: dll/keyboard/kbdus/kbdus.c =================================================================== --- dll/keyboard/kbdus/kbdus.c (revision 47216) +++ dll/keyboard/kbdus/kbdus.c (working copy) @@ -107,11 +107,13 @@ }; ROSDATA VSC_VK extcode0_to_vk[] = { - { 0, 0 }, + { 0x37, VK_SNAPSHOT }, + { 0, 0 } }; ROSDATA VSC_VK extcode1_to_vk[] = { - { 0, 0 }, + { 0x1d, VK_PAUSE }, + { 0, 0 } }; ROSDATA VK_TO_BIT modifier_keys[] = { Index: subsystems/win32/win32k/ntuser/keyboard.c =================================================================== --- subsystems/win32/win32k/ntuser/keyboard.c (revision 47216) +++ subsystems/win32/win32k/ntuser/keyboard.c (working copy) @@ -953,6 +953,11 @@ } VscVkTable++; } + + DPRINT1("Trnslating extended key 0x%x to key 0x%x\n", Msg->wParam, RawVk ); + + /*Update the virtual key*/ + Msg->wParam = RawVk; } if ((ModifierBits & NUMLOCK_BIT) && Index: subsystems/win32/win32k/ntuser/message.c =================================================================== --- subsystems/win32/win32k/ntuser/message.c (revision 47216) +++ subsystems/win32/win32k/ntuser/message.c (working copy) @@ -751,6 +751,13 @@ } return FALSE; } + + if( Msg->message == WM_KEYDOWN && Msg->wParam == VK_SNAPSHOT) + { + DPRINT1("FIXME: Handle print screen\n"); + + //FIXME: we need to drop this message + } return TRUE; } /* @@ -974,7 +981,7 @@ } MsgExit: - if ( ISITHOOKED(WH_MOUSE) && IS_MOUSE_MESSAGE(Msg->Msg.message)) + if ( IS_MOUSE_MESSAGE(Msg->Msg.message)) { if(!ProcessMouseMessage(&Msg->Msg, HitTest, RemoveMsg)) { @@ -982,7 +989,7 @@ } } - if ( ISITHOOKED(WH_KEYBOARD) && IS_KBD_MESSAGE(Msg->Msg.message)) + if ( IS_KBD_MESSAGE(Msg->Msg.message)) { if(!ProcessKeyboardMessage(&Msg->Msg, RemoveMsg)) {