Herramienta para inspeccionar aplicaciones de Windows Forms

Tengo una aplicación de Windows Forms bastante grande. No estoy familiarizado con su base de código y me cuesta encontrar cosas con Visual Studio. Sin embargo, los usuarios comerciales pueden señalarme fácilmente los diversos formularios y controles en una instancia en ejecución de la aplicación. Por lo tanto, me gustaría poder inspeccionar la GUI en ejecución y encontrar los metadatos (nombres de formularios y controles, nombres de controladores de eventos de control, etc.) mediante el uso de algún tipo de herramienta para inspeccionarlos. Al igual que las herramientas de desarrollo en un sitio web.


Debe tener

  • Capaz de inspeccionar aplicaciones de Windows Forms dirigidas a .NET 3.5 y versiones posteriores;
  • Capacidad para hacer clic en controles estándar (botones, etiquetas, cuadros de texto) y formularios para ver su Name;
  • Se ejecuta en Windows Server 2012 y versiones posteriores / Windows 8.1 y versiones posteriores;
  • Gratis;

Debería tener

  • Sobrecarga mínima de rendimiento;
  • Capaz de ver el espacio de nombres de los controles inspeccionados;
  • Todas estas capacidades, pero para controles personalizados (por ejemplo, de bibliotecas de terceros);

Me gustaría tener

  • Capaz de ver los archivos de código fuente relevantes de los controles inspeccionados;
  • Capaz de ver propiedades además de Nombre;
  • Capaz de ver qué controladores de eventos están registrados para los diversos eventos;

Agradable tener

  • Capaz de saltar directamente al archivo/código relevante en Visual Studio con la solución de esa aplicación abierta;
  • Fuente abierta.

He buscado opciones y he encontrado algunas preguntas de Stack Overflow ( 1 , 2 , 3 ); sin embargo, esas preguntas son a menudo muy "mínimas" (y probablemente fuera de tema allí), y las respuestas son igualmente cortas, por lo general nada más que un "¿has probado [somelinkedapp]?". Veo la mayoría de las respuestas que sugieren "Hawkeye", que intentaré en un segundo, pero aún tengo que preguntar:

¿Qué herramienta recomendaría para los requisitos anteriores?

Tenga en cuenta que terminé usando/probando Hawkeye , que funcionó para mi caso de uso. Todavía no tengo suficiente experiencia con él para escribir una respuesta / sé si lo recomendaría.
Proporcione un enlace a Hawkeye y regrese y publique una respuesta para ayudar a otros.
He estado muy contento con Winspector sourceforge.net/projects/winspector

Respuestas (1)

Como aplicación gratuita, recomendaré el conjunto de herramientas de Microsoft UI Automation del SDK de Windows .

Con UI Inspect , puede hacer clic en un elemento de UI, luego ver su nombre y una lista completa de otra información, y usar Visual UI Automation Verify o AccScope podría brindarle una representación visual de los elementos visibles y tal vez una mejor comprensión de la jerarquía.

Cumple con estos requisitos:

  • Capaz de inspeccionar aplicaciones de Windows Forms dirigidas a .NET 3.5 y versiones posteriores
  • Capacidad para hacer clic en controles estándar (botones, etiquetas, cuadros de texto) y formularios
  • Se ejecuta en Windows Server 2012 y versiones posteriores / Windows 8.1 y versiones posteriores
  • Gratis
  • Sobrecarga mínima de rendimiento
  • Todas estas capacidades, pero para controles personalizados (por ejemplo, de bibliotecas de terceros)

Acerca de los espacios de nombres y los nombres (reales) de los elementos, no soy un gurú de la ingeniería inversa, pero creo que rompe el significado y las capacidades de la inspección de la interfaz de usuario y para ese tipo de vista profunda detallada debe necesitar una herramienta de descompilación como el .Net Reflector de pago. de Red Gate , o el Simple Assembly Explorer ( SAE ) gratuito, y opcionalmente de4dot para aquellos casos en los que los miembros del código fuente están ofuscados/protegidos (como espacios de nombres y nombres de miembros).

Cumplen estos requisitos:

  • Capaz de ver el espacio de nombres de los controles inspeccionados
  • Capaz de ver propiedades además de Nombre
  • Capaz de ver qué controladores de eventos están registrados para los diversos eventos
  • Capaz de ver los archivos de código fuente relevantes de los controles inspeccionados
  • ...para ver suName

    (por supuesto, estamos hablando del código fuente reconstruido/reflejado).

Microsoft dice que Inspect es una herramienta heredada y recomienda usar Accessibility Insights en su lugar.
Otro mejor descompilador es capaz de editar su código compilado. filecroco.com/download-dnspy