我可以使用以下代码从正在运行的应用程序中获取窗口句柄。
foreach (ProcessModule module in process.Modules)
{
if (module.ModuleName.Contains("PresentationFramework.dll") || module.ModuleName.Contains("PresentationFramework.ni.dll"))
{
IntPtr window = process.MainWindowHandle;
}
}
但我想从这个处理程序中获取 Window 实例。可能吗?
有什么快速的想法吗?
最佳答案
尝试以下操作:
IntPtr handle = process.MainWindowHandle;
HwndSource hwndSource = HwndSource.FromHwnd(handle);
Window = hwndSource.RootVisual as Window;
更新:
但这只能在同一个 AppDomain 中工作,因为否则这意味着您可以跨不同的 AppDomain 甚至进程共享一个对象,这显然是不可能的。
关于c# - 从窗口句柄获取窗口实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5116429/