如何在另一个进程中确定WPF窗口控件的位置?

时间:2012-05-22 07:38:45

标签: c#

如何在另一个进程中确定WPF窗口控件的位置?以下代码返回source = null,因此我无法遍历所有控件来查找和确定控件位置。

Process[] procs = Process.GetProcesses();
        foreach(Process p in procs)
        {
            if (p.MainWindowHandle != null)
            {
                StringBuilder sb = new StringBuilder(257);
                RealGetWindowClass(p.MainWindowHandle, sb, 256);
                if(sb.ToString().StartsWith("HwndWrapper"))
                {
                    System.Windows.Interop.HwndSource source = System.Windows.Interop.HwndSource.FromHwnd(p.MainWindowHandle);
                    EnumVisual(source.RootVisual);
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

我正在使用Project White进行自动化。有了这个项目,你可以找到WinForms和WPF窗口并访问它们的属性,看看吧!这样您就不需要使用低级Windows API。