Tool zum Untersuchen von Windows Forms-Anwendungen

Ich habe eine ziemlich große Windows Forms-Anwendung. Ich bin mit der Codebasis nicht vertraut und habe Schwierigkeiten, Dinge mit Visual Studio zu finden. Geschäftsbenutzer können mich jedoch problemlos auf die verschiedenen Formulare und Steuerelemente in einer laufenden Instanz der Anwendung verweisen. Ich möchte also in der Lage sein, die laufende GUI zu überprüfen und die Metadaten (Formular- und Steuerelementnamen, Ereignishandlernamen usw.) zu finden, indem ich eine Art Tool verwende, um sie zu überprüfen. Ähnlich wie die Entwicklertools auf einer Website.


Haben müssen

  • In der Lage, Windows Forms-Anwendungen zu untersuchen, die auf .NET 3.5 und höher abzielen;
  • Möglichkeit, auf Standardsteuerelemente (Schaltflächen, Beschriftungen, Textfelder) und Formulare zu klicken, um deren Name;
  • Läuft auf Windows Server 2012 und höher / Windows 8.1 und höher;
  • Gratis;

Sollte haben

  • Minimaler Leistungsaufwand;
  • Kann den Namensraum der geprüften Steuerelemente sehen;
  • Alle diese Fähigkeiten, aber für benutzerdefinierte Steuerungen (z. B. aus Bibliotheken von Drittanbietern);

Würde gerne haben

  • Kann die relevanten Quellcodedateien der geprüften Kontrollen anzeigen;
  • Kann Eigenschaften außer Name sehen;
  • Kann sehen, welche Event-Handler für die verschiedenen Events registriert sind;

Schön zu haben

  • Kann direkt zu der relevanten Datei/dem relevanten Code in Visual Studio springen, wenn die Lösung dieser Anwendung geöffnet ist;
  • Open Source.

Ich habe nach Optionen gesucht und einige Stack Overflow-Fragen gefunden ( 1 , 2 , 3 ); Diese Fragen sind jedoch oft sehr "minimal" (und dort wahrscheinlich nicht zum Thema), und die Antworten sind ebenso kurz, normalerweise nicht mehr als ein "Haben Sie [irgendeine verlinkte App] ausprobiert?". Ich sehe die meisten Antworten, die "Hawkeye" vorschlagen, was ich gleich versuchen werde, aber ich muss trotzdem fragen:

Welches Tool würden Sie für die oben genannten Anforderungen empfehlen?

Beachten Sie, dass ich schließlich Hawkeye verwendet/ausprobiert habe, was für meinen Anwendungsfall funktioniert hat. Ich habe noch nicht genug Erfahrung damit, um eine Antwort zu verfassen / zu wissen, ob ich es empfehlen würde.
Bitte geben Sie einen Link zu Hawkeye und kommen Sie bitte zurück und posten Sie eine Antwort, um anderen zu helfen.
Ich war sehr zufrieden mit Winspector sourceforge.net/projects/winspector

Antworten (1)

Als kostenlose Anwendung empfehle ich das Microsoft UI Automation Toolset aus dem Windows SDK .

Mit UI Inspect können Sie auf ein UI-Element klicken und dann seinen Namen und eine vollständige Liste anderer Informationen sehen, und die Verwendung von Visual UI Automation Verify oder AccScope könnte Ihnen eine visuelle Darstellung der sichtbaren Elemente und vielleicht ein besseres Verständnis der Hierarchie geben.

Es erfüllt diese Anforderungen:

  • Kann Windows Forms-Anwendungen untersuchen, die auf .NET 3.5 und höher abzielen
  • Möglichkeit, auf Standardsteuerelemente (Schaltflächen, Beschriftungen, Textfelder) und Formulare zu klicken
  • Läuft auf Windows Server 2012 und höher / Windows 8.1 und höher
  • Gratis
  • Minimaler Performance-Overhead
  • Alle diese Fähigkeiten, aber für benutzerdefinierte Steuerelemente (z. B. aus Bibliotheken von Drittanbietern)

Was Namespaces und (echte) Elementnamen angeht, ich bin kein Reverse-Engineering-Guru, aber ich denke, es bricht die Bedeutung und die Fähigkeiten der UI-Inspektion, und für diese Art von detaillierter Tiefenansicht benötigen Sie ein Decompiler-Tool wie den kostenpflichtigen .Net Reflector von Red Gate oder dem kostenlosen Simple Assembly Explorer ( SAE ) und optional de4dot für Fälle, in denen die Mitglieder des Quellcodes verschleiert/geschützt sind (wie Namespaces und Mitgliedsnamen).

Sie erfüllen diese Anforderungen:

  • Kann den Namespace der überprüften Steuerelemente anzeigen
  • Kann Eigenschaften außer Name sehen
  • Kann sehen, welche Ereignishandler für die verschiedenen Ereignisse registriert sind
  • Kann die relevanten Quellcodedateien der geprüften Kontrollen anzeigen
  • ... um ihre zu sehenName

    ( natürlich sprechen wir über den rekonstruierten/reflektierten Quellcode. )

Microsoft sagt , dass Inspect ein veraltetes Tool ist, und empfiehlt stattdessen die Verwendung von Accessibility Insights .
Ein weiterer bester Decompiler ist in der Lage, Ihren kompilierten Code zu bearbeiten. filecroco.com/download-dnspy