C++ 上的 SendInput 不考虑 Ctrl 和 Shift

2023-12-22

I'm trying to send a CTRL+SHIFT+END key stroke to a control, in a C++ application written with Embarcadero. I'm using the code below:

tagINPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;

// Appui sur Ctrl
ip.ki.wVk = VK_CONTROL;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));

// Appui sur Shift
ip.ki.wVk = VK_SHIFT;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));

// Appui sur End
ip.ki.wVk = VK_END;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));

Application->ProcessMessages();

// Relacher End
ip.ki.wVk = VK_END;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));

// Relacher Shift
ip.ki.wVk = VK_SHIFT;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));

// Relacher Ctrl
ip.ki.wVk = VK_CONTROL;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));

However, it appears to be working like if there was no action on the CTRL and SHIFT keys.

我缺少什么?


问题是,VK_END键是扩展键。所以你应该在标志中声明这一点:

eip.ki.dwFlags = 0;
ip.ki.wVk = VK_END;
ip.ki.dwFlags = 0;
ip.ki.dwFlags = ip.ki.dwFlags | 1;
SendInput(1, &ip, sizeof(INPUT));

Application->ProcessMessages();

// Relacher End
ip.ki.wVk = VK_END;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
ip.ki.dwFlags = ip.ki.dwFlags | 1;
SendInput(1, &ip, sizeof(INPUT));

请注意,我使用 1 设置标志,因为我不知道您的 C++ 中是否定义了常量,但假设某个地方有常量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 上的 SendInput 不考虑 Ctrl 和 Shift 的相关文章

随机推荐

  • 在react中从json获取本地图像路径

    如何选择图片的本地路径 Json avatarUrl avt1 jpg 所有图片都在下面来源 gt img文件夹 我正在寻找 json 中的绝对路径 图像名称 我怎样才能实现这个目标reactJs img src width 60 包 js
  • 在ubuntu上编译protobuf客户端代码,但找不到包含文件

    我刚刚在我的 ubuntu1604 上安装了 google protocol buffer sudo apt install protobuf compiler 并尝试了快速测试 1个proto文件 1个cpp文件来使用它 尝试查看编码 解
  • Launch4J 插件创建一个 EXE(以及 JAR),但 EXE 在 Spring boot 中找不到主类

    我编写了一个插件 在 Launch4J 插件的帮助下为我的项目创建 EXE 和 JAR 但是 在执行 EXE 文件时 我收到错误 Error Could not find or load main class 但是 我通过提供来运行 JAR
  • 在 Android 上通过 bash 脚本启用/禁用 wifi

    我正在尝试在 bash 脚本中启用 禁用 Android 设备中的 wifi 设备 我正在使用终端仿真器和程序脚本管理器在手机 是 root 的 Nexus One 上执行 bash 脚本 在linux中执行此操作的正常方法是这样的 ifc
  • 我在哪里可以找到一些“hello world”-简单的美丽汤示例?

    我想用 Beautiful Soup 做一个非常简单的替换 假设我想访问页面中的所有 A 标记并将 foo 附加到它们的 href 中 有人可以发布或链接到如何做这样简单的事情的示例吗 from BeautifulSoup import B
  • function_exists 返回 false 但声明抛出错误

    在 PHP 5 3 6 中 我有一个类 其方法如下 public function chunkText if function exists unloadChunkText function unloadChunkText 其中 unloa
  • java中浮点数和双精度数有多少位有效数字?

    float 是否有 32 位二进制数字 double 是否有 64 位二进制数字 该文档太难理解了 所有位都转换为有效数字吗 还是小数点的位置占用了一些位 float 32 bits 4 bytes where 23 bits are us
  • Javascript 中“new”关键字的限制

    我有这个JS代码 var A A new function n return new Array n 它在所有浏览器中都运行良好 但是当我尝试用它来混淆它时混淆器 http javascriptobfuscator com 它显示一个错误
  • 从另一个 Dart 程序运行交互式 Dart 程序

    我有一个相当长的命令行程序 需要用户输入参数 然后使用这些参数进行处理 我想做的是将程序分为交互式和非交互式 我尝试这样做 并打算让非交互式程序 调用 交互式程序并使用结果 参数 根据这些参数进行处理 程序的非交互部分在处理时将结果显示在控
  • 无法查看 Xcode 4.2 帮助“index.html”被锁定以进行编辑

    当我尝试在 Xcode 中搜索文档时 出现以下错误 index html 已被锁定进行编辑 您可能无法保存更改 你想解锁它吗 index html 目前已被锁定 因为它不支持编辑 文件 index html 无法解锁 无法向该文件添加写入权
  • AWS RedShift - .NET Core(ODBC 支持?)

    如何使用 NET Core 连接 AWS RedShift 并运行查询 请提供代码示例 我已经阅读了 AWS 文档和 Net Core 文档 但没有运气 这个答案是针对特定时间点的 不会过时 EntityFramework Core 项目是
  • Google Map APi 缩放栏未显示

    Google 地图 api 没有完全显示缩放栏和图像类型 而是仅显示用于放大和缩小的加减按钮以及用于选择地图类型的下拉按钮 网址是http booking smanager net design index php lv 2 http bo
  • Python - 获取浏览器重定向到的url

    我正在尝试使用 API 验证应用程序 就是这样 我正在使用打开一个 URLwebbrowser open 用户对应用程序进行身份验证 并被重定向到另一个 URL 即 https stackexchange com oauth login s
  • 递归下降解析器和函数式编程

    所以最近我一直致力于编写一个简单的编译器 以更好地理解编译器概念 作为 stackoverflow 的忠实读者 似乎有一个共识 用函数式语言编写编译器比命令式语言更容易 为此 我想尝试一下杀两只鸟 用 F 编写一个编译器 既学习函数式语言
  • 如果ListBox包含,则不添加

    我有一个方法 FillListBox 我从不同的地方调用这个方法 但有时会发生这种情况 东西被加载了两次 现在我正在尝试做类似的事情 if listBox Items 1 ToString hello DO NOT FILL else FI
  • 修复 shell 脚本以增加 semversion [重复]

    这个问题在这里已经有答案了 我从未使用过 shell bash 但在脚本中发现了一些错误 我用它来增加版本 脚本工作正常 直到这种情况 version 1 27 9 echo version awk F v OFS NF 1 print N
  • Java 和 Clojure 与 Leiningen

    是否可以在使用 leiningen 的项目中轻松管理和编译本机 Java 类以及 Clojure 我的工作水平相当低 使用 netty nio 并且认为一些管道类实际上在构建代码和性能方面更容易作为原始 java 进行处理 从 Leinin
  • 控制器可以将接口实例作为参数吗? ASP.NET MVC

    ASP NET 控制器操作方法可以将接口作为参数之一吗 我想要这样的东西 class MyController HttpPost public ActionResult Action IMyModel model 是否可以 显然 我必须告诉
  • MonitorFilter::警告:监视器过滤器必须是链中的第一个过滤器

    Tomcat从8 0 5升级到8 0 9 0后 从浏览器访问页面时 Tomcat服务器在服务器终端上记录以下警告 MonitorFilter WARNING the monitor filter must be the first filt
  • C++ 上的 SendInput 不考虑 Ctrl 和 Shift

    I m trying to send a CTRL SHIFT END key stroke to a control in a C application written with Embarcadero I m using the co