如何使用 C# 访问其他应用程序中的对象

本文关键字:对象 应用程序 其他 何使用 访问 | 更新日期: 2023-09-27 17:56:36

我想以类似于自动化工具在其"UI Map"功能中访问它们的方式访问对象及其属性。我假设有一个程序集引用可以访问正在运行的进程以及该进程存在的任何对象。

具体来说,我需要在另一个正在运行的应用程序中访问一些标签控件文本属性。

另外,很抱歉,如果这是重复的 - 我环顾四周,但我不确定哪些关键字会让我得到我需要的东西。

如何使用 C# 访问其他应用程序中的对象

这在 C# 中并不常见。您正在寻找的术语是"监视"另一个窗口/应用程序/进程。StackOverflow中有几个资源在讨论这个问题。例如:

如何在 C# 应用中获取类似于 Spy++ 的功能?

若要访问另一个 Win32 窗体中的控件,需要查找该元素的句柄。

对于 WPF 应用程序,.NET 4.5 中提供的UI 自动化库使这种方式更简单: http://msdn.microsoft.com/en-us/library/ms747327.aspx

对于较旧的 winforms 应用程序,您必须在 User32 API 上实际使用 pInvoke。Pete 在对您的问题的评论中为您提供的示例链接将有助于指导您朝这个方向前进:http://www.pinvoke.net/default.aspx/user32.enumwindows