0

別のプロセスで 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);
                }
            }
        }
4

1 に答える 1

0

自動化にはProject Whiteを使用しています。このプロジェクトでは、WinForms と WPF ウィンドウを見つけて、それらのプロパティにアクセスできます。見てください! この方法では、低レベルの Windows API を使用する必要はありません。

于 2012-05-22T07:51:51.277 に答える