gpt4 book ai didi

c++ - 右 ALT 发送两个虚拟键码

转载 作者:行者123 更新时间:2023-11-30 02:03:12 25 4
gpt4 key购买 nike

在我的 Hook 程序(用于键盘)中,当我单击右键时,它会在按下时向我发送两个代码,在释放时向我发送两个代码:

代码:

LRESULT CALLBACK Recorder::keyboardHookProcedure( int code, WPARAM wParam, LPARAM lParam ) {
if( code < 0 )
return CallNextHookEx( m_mouseHook, code, wParam, lParam );

DWORD _vkCode = reinterpret_cast<KBDLLHOOKSTRUCT*>( lParam )->vkCode;

qDebug( "vkCode: %d, wparam: %d, lparam: %d", _vkCode, wParam, lParam );

return CallNextHookEx( 0, code, wParam, lParam );
}

按下

vkCode: 162, wparam: 260, lparam: 3398032
vkCode: 165, wparam: 260, lparam: 3398032

关于发布

vkCode: 162, wparam: 257, lparam: 3398032
vkCode: 165, wparam: 257, lparam: 3398032

此外,请注意,当您按下该键时,它会将其发送为 WM_SYSKEYDOWN (260),但当您释放它时,wParam 为 WM_KEYUP (257)。什么……?为什么会这样?

最佳答案

这是因为右 alt 键 (ALT-GR) 是两个键的快捷方式 - ALT 和 CTRL

你得到 WM_SYSKEYDOWN 但 WM_KEYUP 因为这就是消息的定义方式 - 如果你期望 WM_SYSKEYUP,当你释放与 ALT 键一起按下的键时你会得到它 - http://msdn.microsoft.com/en-us/library/windows/desktop/ms646287(v=vs.85).aspx

关于c++ - 右 ALT 发送两个虚拟键码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com