从另一个窗口收集信息

本文关键字:信息 窗口 另一个 | 更新日期: 2023-09-27 18:16:38

我花了一些时间搜索,所以如果这个问题已经有人回答了,请原谅我。我用c#写了一个程序来完成各种任务,但不是从文件中收集信息,而是从另一个正在运行的程序中检索一些值,这些程序将与我自己的软件同时打开。这另一个程序将有变量和屏幕上的数据,我需要放在我自己的变量。有什么好的方法可以解决这个问题吗?我知道c++有一些方法,但我不知道;所以即使我必须用c++写它,然后通过c#调用它,我也没问题。

编辑:更多信息;有2个消息框区域和3个int变量,我需要在运行时捕获数据。

从另一个窗口收集信息

如果您想要附加到托管应用程序,您可以看到Snoop是如何做到这一点的。它是开源的:http://snoopwpf.codeplex.com/

…而不是从文件中收集信息,我想…

好吧,你可以使用标准的非文件通信,如WCF(或更少学习曲线的替代方案),而不是使用这些方法。

考虑使用EnumWindows列出所有窗口。

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);

然后您可以获得关于这些窗口的附加信息。例如,这里有一篇博客文章描述了如何获取窗口标题。