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