需要健壮的SendKeys解决方案

本文关键字:SendKeys 解决方案 | 更新日期: 2023-09-27 18:01:27

我正在尝试编写一个可以可靠地将按键发送到另一个应用程序的应用程序。

第二个应用程序有一个文本字段,当按下9时打开。然后可以输入文本,然后在按Enter键时关闭文本字段。

如果我使用SendKeys来尝试这样做,如果我发送9,字段不会打开,但是如果字段已经打开,我的工具可以发送文本ok,但是如果我发送Enter,它不会关闭。

我猜这是因为使用了与键盘驱动程序或类似程序的低级交互。

是否有一个可靠的方法,我可以模拟实际的键盘输入到另一个c#应用程序的应用程序?我在网上找到了一些潜在的解决方案,但这些通常是不完整的,要么缺少引用等,要么缺少其他地方的代码。

我将继续搜索,如果我找到了,我会在这里发布解决方案!

需要健壮的SendKeys解决方案

是否可以调用操作系统提供的屏幕键盘。你的应用程序,调用应用程序将丢失或无法跟踪键事件,但是如果你打开第二个应用程序并涉及osk.exe,那么健壮的键盘发送键到应用程序的目的可以实现。我在这里解释过了

编辑:忽略屏幕键盘

您可以尝试使用RegisterHotKey在特定的键序列上打开文本pad,并将句柄保存在实例变量中。在第二个热键的序列上,您可以关闭文本pad(您已经知道句柄)

有一个视频解释这个