从另一个窗口收集信息

时间:2013-06-01 23:11:22

标签: c# .net winforms

我已经花了一些时间搜索,所以请原谅我已经回答了某人。 我已经用C#编写了一个程序来执行各种任务,但不是从文件中收集信息,而是希望从另一个与我自己的软件同时打开的正在运行的程序中检索一些值。这个其他程序将包含变量和屏幕数据,我需要将它们放入我自己的变量中。有没有好办法解决这个问题?我知道C ++有一些方法,但我不了解它们;所以,即使我必须用C ++编写并通过C#调用它,我也没关系。

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

2 个答案:

答案 0 :(得分:0)

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

  

...而不是从我想要的文件中收集信息......

嗯,您可以使用标准的非文件通信(例如WCF(或具有较少学习曲线的替代方案)进行通信,而不是任何这些方法。

答案 1 :(得分:0)

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

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

然后,您可以获得有关这些窗口的其他信息。例如,这里有一个blog post,它描述了如何获取窗口标题。