Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 模拟alt tab键会导致菜单卡在屏幕上_C++_Winapi_Sendinput - Fatal编程技术网

C++ 模拟alt tab键会导致菜单卡在屏幕上

C++ 模拟alt tab键会导致菜单卡在屏幕上,c++,winapi,sendinput,C++,Winapi,Sendinput,我需要为alt tab函数制作一个自定义热键。我使用SendInput发送相应的键来实现这一点,它工作正常 但是,如果热键已经包含alt键,则程序只需按下并释放tab键;但这样做会导致alt tab菜单甚至卡在屏幕上,唯一能让它消失的方法就是关闭我的程序。这怎么可能发生?关闭我的程序与菜单消失有什么关系 另一方面,发送(alt-down)(tab-down)(tab-up)(alt-up)键,无论alt是否已关闭,在所有情况下都可以工作,但我不能因为其他原因依赖于此行为 如果有帮助的话,我正在使

我需要为alt tab函数制作一个自定义热键。我使用
SendInput
发送相应的键来实现这一点,它工作正常

但是,如果热键已经包含alt键,则程序只需按下并释放tab键;但这样做会导致alt tab菜单甚至卡在屏幕上,唯一能让它消失的方法就是关闭我的程序。这怎么可能发生?关闭我的程序与菜单消失有什么关系

另一方面,发送(alt-down)(tab-down)(tab-up)(alt-up)键,无论alt是否已关闭,在所有情况下都可以工作,但我不能因为其他原因依赖于此行为


如果有帮助的话,我正在使用WinXP,我还没有在Win7计算机上尝试过。

在操作员单击ALT-N取消操作时,由于执行PostMessage WM_KEYDOWN,VK_选项卡,引发了类似的问题。因此,在发送选项卡时,ALT键仍然处于关闭状态。由于我们的代码从未发送WM_密钥,因此它一定是混淆了Win XP。将alt tab菜单保留在屏幕上,直到应用程序退出。

我不知道这是否相关,但alt+Ctrl+tab会导致菜单卡住,就像按下alt+tab时alt会卡住一样。因此,您可能以某种方式发送了Ctrl信号。

这很麻烦,键盘状态是每个进程的属性,您无法找到拥有前景窗口的任何进程的键盘状态。它和你的不相配。因此,您可能做错了什么,我们看不到。但这是如何导致alt tab窗口卡在屏幕上的呢?我已经检查过,我的程序所做的就是发送(制表符向下)(制表符向上)输入。更奇怪的是,为什么关闭程序会使其消失?为什么不使用全套按键?你说它“在所有情况下都有效”。其他原因是什么?