我需要使用C#将键发送到其他应用程序到其他应用程序中的特定文本字段。
那可能吗? 如果是的话,任何人都可以给我示例代码?
SendKeys
只发送击键组合到活动窗口 。
因此,如果您的C#应用程序在恰当的时间调用SendKeys
函数,那么当用户拥有其他应用程序的文本框时,一切都会正常工作。
当然,问题是现实世界很少这么完美。 您不知道用户何时将关注其他应用程序,当然不知道他们是否点击了文本框控件。 您也无法让用户告诉您的C#应用程序什么时候发送文本(例如单击按钮),因为要点击按钮, 您的应用程序必须具有前景焦点,因此不需要应用程序你想要接收键盘输入。
这只是对以这种方式尝试UI自动化时遇到的一些潜在问题的简要概述。 这是非常脆弱的,并且可能容易导致用户的一些意想不到的,令人不快的行为。 我强烈建议不要这样做。 一个更好的选择是直接与其他应用程序通信,比如通过发送消息,而不是试图侵入性地控制其UI。
如果你绝对必须这样做,尽管所有的建议是相反的,最好的办法是获得你想要发送文本的窗口的句柄,然后发送WM_SETTEXT
消息 。 这当然会要求你从Win32 API中调用一些函数。 有关示例代码,请参阅此问题的答案 。