visual studio samples prebuilt examples ejemplos ejemplo apps c# .net screen-scraping

studio - Screen-scraping una aplicación de Windows en c#



xamarin prebuilt apps (5)

"Es posible que pueda usar System.Diagnostics.Process.GetProcessesByName (" ProcName ") y recuperar el manejador de las ventanas principales, desde allí puede usar win32 API para obtener el control del cuadro de texto que se utiliza para mostrar el texto que desea. Con el control del cuadro de texto puede obtener o establecer los contenidos. No soy un genio con la API de win32 pero con un poco de investigación he podido realizar tareas similares. Espero que esto ayude ".

Tomado de aquí: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic1657.aspx

Necesito raspar datos de una aplicación de Windows para ejecutar una consulta en otro programa. ¿Alguien sabe de un buen punto de partida para hacer esto en .NET?


Codificando The Wheel como un artículo sobre cómo pudo obtener información de la Aplicación de Poker.

Comprobar: deconstructing-the-poker-client-1 . Esto puede ser útil.


Es posible que desee examinar el mensaje WM_GETTEXT . Esto se puede utilizar para leer texto de otras ventanas : es una parte arcaica de la API de Windows, y si está en C #, tendrá que p / invocar para ello.

Echa un vistazo a esta página para ver un ejemplo de cómo hacer esto en C #.

Básicamente, primero FindControlEx () obtiene el control de la ventana que desea (por título).

En segundo lugar, enumera recursivamente los controles en esa ventana con EnumChildWindows () para buscar todos los controles secundarios de la ventana y todos los hijos de los niños hasta que tenga un mapa completo del formulario de destino.

Aquí hay una parte seleccionada de la excelente explicación de Theta-ga de Google Answers:

Para obtener el contenido de cualquier cuadro de texto o control de cuadro de lista, todo lo que necesitamos es su identificador de ventana. Si ya ha obtenido el identificador de ventana, pase a la parte 2 de la explicación.

PARTE 1: Obtención de la palanca de control

  • Para obtener el control de un control, primero obtenemos el control de su ventana principal. Podemos hacer esto utilizando el método Win32 FindControlEx (). Este método toma el título de la ventana (como ''Calculadora'') y / o su nombre de clase, y devuelve su manejador.
  • Una vez que tenemos el manejador de la ventana principal, podemos llamar al método Win32 EnumChildWindows. Este método tiene un método de devolución de llamada que llama con el control de cada control secundario que encuentra para el elemento primario especificado. Por ejemplo, si llamamos a este método con el control de la ventana de la Calculadora, llamará al método de devolución de llamada con el control de texto, y luego de nuevo con los controles de cada uno de los botones en la ventana de la Calculadora, y así sucesivamente .
  • Como solo estamos interesados ​​en el manejo del control del cuadro de texto, podemos verificar la clase de la ventana en el método de devolución de llamada. El método Win32 GetClassName () se puede usar para esto. Este método toma un identificador de ventana y nos proporciona una cadena que contiene el nombre de clase. Entonces, un cuadro de texto pertenece a? Edit? clase, un cuadro de lista para la clase ''ListBox'' y así sucesivamente. Una vez que haya determinado que tiene el control adecuado, puede leer su contenido.

PARTE 2: Leer el contenido de un control

  • Puede leer el contenido de un control utilizando la función SendMessage () de Win32 y usándolo para pasar el mensaje WM_GETTEXT al control de destino. Esto le dará el contenido de texto del control. Este método funcionará para un cuadro de texto, botón o control estático.
  • Sin embargo, el enfoque anterior fallará si intenta leer los contenidos de un listbox. Para obtener el contenido de un cuadro de lista, primero debemos usar SendMessage () con el mensaje LB_GETCOUNT para obtener el recuento de los elementos de la lista. Luego debemos llamar a SendMessage () con el mensaje LB_GETTEXT para cada elemento en la lista.

Consulte ManagedSpy, se proporciona el código fuente. ( enlace )


screenscraperstudio.com

Crea el código VB de "su diálogo raspador".

Todavía no lo he comprado, así que podría estar equivocado, pero es la única forma (excepto rodar el tuyo usando el mensaje de Spy ++ como otros eluden al anterior ...)