我试图编写一个能够可靠地将按键发送到另一个应用程序的应用程序。
第二个应用程序有一个文本字段,按下9时会打开该字段。 然后可以键入文本,然后在按下Enter时关闭文本字段。
如果我使用SendKeys尝试执行此操作,如果我发送9,则该字段不会打开,但如果该字段已经打开,我的工具可以发送文本,但是如果我发送输入则它不会关闭。
我猜这是因为正在使用与键盘驱动程序或类似程序的较低级别交互。
有没有一种可靠的方法可以模拟来自另一个C#应用程序的应用程序的实际键盘输入? 我在网上找到了一些可能的解决方案,但这些解决方案通常都是不完整的,缺少参考文献等,或者其他地方缺少代码。
我会继续搜索,如果找到的话,我会在这里发布解决方案!
答案 0 :(得分:0)
是一个调用os提供的屏幕键盘的选项。您的应用程序,调用应用程序将松动或无法跟踪关键事件,但是如果您打开第二个应用程序并调用osk.exe,则可以填充强大的键盘发送键到应用程序的目的。 我解释了这个here
编辑:忽略屏幕键盘
您可以尝试使用RegisterHotKey打开特定键序列上的文本板,并将句柄保留在实例变量中。在第二个热键的序列上,您可以关闭文本板(您已经知道句柄)
有video解释此