在C#中从第三方应用程序获取文本框值

时间:2019-01-22 14:09:21

标签: c# winforms textbox anonymous-pipes

我正在尝试开发可在后台运行的C#应用​​程序,该应用程序需要检测何时打开,填写了一个随机的第三方应用程序并单击了按钮。

我知道我可以通过流程获取第三方应用程序的一些信息,但是是否可以遍历所有控件并获取其值?

我已经阅读了有关“匿名管道”的内容,但不知道是否可以在这种情况下实现这些管道,以及如何实现。

我的最终目标是在同一应用程序中单击“打印”按钮时获得该应用程序中一个特定文本框的值。第三方应用不是我开发的,因此我只将其作为.exe拥有,但我可以看到它具有文本框,标签和按钮。

1 个答案:

答案 0 :(得分:2)

您需要的是进程间通信 有多种方法可以解决您的问题:

1。使用通用数据存储

在单击打印按钮时,您可以在数据库/文件中设置一些标志和文本框文本。另一个应用程序可以轮询以检查是否设置了此标志。

一旦设置,其他应用程序可以从数据库/文件中读取。

2。您可以从另一个应用程序托管一个Net Pipe Binding WCF端点。

如果我必须将数据从一个进程发送到同一台计算机上的另一个进程,我会更喜欢此选项。 您的主要应用程序将具有wcf服务的代理。 Wcf服务将成为需要了解文本框文本的其他应用程序的一部分。

在单击“打印”按钮时,您的主应用程序会将文本框文本发送到此WCF服务。

因为它使用的是命名管道绑定,所以该服务仅在该计算机上可用。

请参考示例from this blog

也可以有其他方法(例如,托管仅允许从本地主机访问的Web API)。方法的选择取决于程序的高级设计。

希望这会有所帮助

相关问题