SysKey hook filter:

. Fix for GetKeyState() not detecting the special keys as being up (so AKD was erroneously reporting the key still down).
. eg. Whilst pressing TAB, press LEFT ALT, then release TAB.
This commit is contained in:
tomcw
2018-05-28 22:13:54 +01:00
parent 6b53adde55
commit 0d4be07e7e
3 changed files with 25 additions and 33 deletions
+9 -2
View File
@@ -1260,7 +1260,7 @@ LRESULT CALLBACK FrameWndProc (
case WM_KEYDOWN:
KeybUpdateCtrlShiftStatus();
KeybSpecialKeydown(wparam);
KeybSpecialKeyTransition(WM_KEYDOWN, wparam);
// Process is done in WM_KEYUP: VK_F1 VK_F2 VK_F3 VK_F4 VK_F5 VK_F6 VK_F7 VK_F8
if ((wparam >= VK_F1) && (wparam <= VK_F8) && (buttondown == -1))
@@ -1400,7 +1400,14 @@ LRESULT CALLBACK FrameWndProc (
break;
case WM_KEYUP:
KeybSpecialKeyup(wparam);
KeybSpecialKeyTransition(WM_KEYUP, wparam);
if (wparam == VK_ESCAPE || wparam == VK_SPACE || wparam == VK_TAB)
{
char str[40];
sprintf(str, "WM_KEYUP: %d\n", wparam);
OutputDebugString(str);
}
// Process is done in WM_KEYUP: VK_F1 VK_F2 VK_F3 VK_F4 VK_F5 VK_F6 VK_F7 VK_F8
if ((wparam >= VK_F1) && (wparam <= VK_F8) && (buttondown == (int)wparam-VK_F1))