gpt4 book ai didi

c++ - VK_TAB 在我的 C++ 程序中的 SendInput() 中不起作用

转载 作者:行者123 更新时间:2023-11-30 02:49:57 24 4
gpt4 key购买 nike

我在一个项目中使用 SendInput() 将粘贴命令发送到另一个应用程序窗口,如下所示:

`INPUT input, vButton, ctrl1, ctrl2;` 
input.type = INPUT_KEYBOARD;
input.ki.wVk = VK_CONTROL;
input.ki.wScan = 0;
input.ki.dwFlags = KEYEVENTF_UNICODE ;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;

vButton .type = INPUT_KEYBOARD;
vButton .ki.wVk = 0x56;
vButton .ki.wScan =0;
vButton .ki.dwFlags = KEYEVENTF_UNICODE ;
vButton .ki.time = 0;
vButton .ki.dwExtraInfo = 0;

ctrl1.type = INPUT_KEYBOARD;
ctrl1.ki.wVk = VK_CONTROL;
ctrl1.ki.wScan = 0;
ctrl1.ki.dwFlags = KEYEVENTF_KEYUP |KEYEVENTF_UNICODE ;
ctrl1.ki.time = 0;
ctrl1.ki.dwExtraInfo = 0;

ctrl2.type = INPUT_KEYBOARD;
ctrl2.ki.wVk = VK_TAB;
ctrl2.ki.wScan = 0;
ctrl2.ki.dwFlags = KEYEVENTF_KEYUP ;
ctrl2.ki.time = 0;
ctrl2.ki.dwExtraInfo = 0;

// Send Input To Another Window
::ShowWindow(mainHwnd, SW_SHOWNORMAL);
int retval = SendInput(1, &input, sizeof(INPUT));
retval = SendInput(1, &vButton, sizeof(INPUT));
retval = SendInput(1, &ctrl1, sizeof(INPUT));
retval = SendInput(1, &ctrl2, sizeof(INPUT));`

它工作正常,除了 INPUTVK_TAB 键。我想向应用程序发送 VK_TAB 命令。

但它没有按预期工作,即即使在 SendInput() 成功完成后,下一个控件也没有获得焦点。

谁能帮我解决这个问题。我如何才能专注于其他应用程序的下一步控制?

提前致谢。

最佳答案

如果您只是发送简单的 key ,请不要将 KEYEVENTF_UNICODE 用于 dwFlags。对于 KeyDown 转换,将 dwFlags 设置为 0,对于 KeyUp 转换,将其设置为 KEYEVENTF_KEYUP

您忘记了 SendInput V 的 KeyUp 转换和 VK_TAB 的 KeyDown 转换

使用那种代码。

INPUT input:
input.type = INPUT_KEYBOARD;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;
input.ki.wScan = 0;
input.ki.dwFlags = 0;

// Ctrl Down
input.ki.wVk = VK_CONTROL;
SendInput( 1, &input, sizeof( INPUT ) );
// V Down
input.ki.wVk = 0x56;
SendInput( 1, &input, sizeof( INPUT ) );
// V Up
input.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput( 1, &input, sizeof( INPUT ) );
// Ctrl Up
input.ki.wVk = VK_CONTROL;
SendInput( 1, &input, sizeof( INPUT ) );
// Tab Down
input.ki.wVk = VK_TAB;
input.ki.dwFlags = 0;
SendInput( 1, &input, sizeof( INPUT ) );
// Tab Up
input.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput( 1, &input, sizeof( INPUT ) );

关于c++ - VK_TAB 在我的 C++ 程序中的 SendInput() 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20856552/

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