将文本发送到当前焦点的任何窗口

时间:2012-02-24 16:21:47

标签: c# string text

我正在尝试用C#编写一个程序,将文本发送到其他窗口。 如何在C#中编写一个命令,将文本发送到当前用户关注的窗口?

例如:

如果用户单击打开的记事本窗口,打开的Outlook信函或打开的Excel工作表,然后单击我的程序上的按钮,文本将“粘贴”到最后一个记事本窗口/ Outlook信件/用户最后点击的excel单元格。

我希望我的问题足够明确。我不是那么有经验,缺少很多术语。

2 个答案:

答案 0 :(得分:3)

通过最小化或隐藏主窗口使您的应用程序失焦,然后使用

发送文本
SendKeys.SendWait("Hello World!");    

最后,恢复主窗口。


如果代码是在主窗体中执行的,那么你可以这样做

this.Visible = false;
SendKeys.SendWait("Hello World!");    
this.Visible = true;

答案 1 :(得分:2)

Olivier的回答实际上似乎比我原来的“似乎无法实现”更准确(并教会了我一些东西:))。如果你需要一个例子,那么看看这个:

http://www.codeproject.com/Articles/18366/Sending-Keystrokes-to-another-Application-in-C

但是,在更复杂的层面上,如果没有要调用的API,除了此解决方案之外,您无法做更多的事情。