¿Cómo determinar la posición de un control de ventana WPF en otro proceso?

¿Cómo determino la posición de un control de ventana WPF en otro proceso? El siguiente código devuelve source=null, por lo tanto, no puedo atravesar todos los controles para encontrar y determinar la posición del control.

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);
                }
            }
        }

preguntado el 22 de mayo de 12 a las 08:05

1 Respuestas

Estoy usando Proyecto White para la automatización. Con este proyecto puedes encontrar ventanas de WinForms y WPF y acceder a sus propiedades, ¡échale un vistazo! De esta manera, no necesita usar la API de Windows de bajo nivel.

contestado el 22 de mayo de 12 a las 08:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.