Инструмент для проверки приложений Windows Forms

У меня есть довольно большое приложение Windows Forms. Я не знаком с его кодовой базой и с трудом нахожу что-то в Visual Studio. Однако бизнес-пользователи могут легко указать мне на различные формы и элементы управления в работающем экземпляре приложения. Поэтому я хотел бы иметь возможность проверять работающий графический интерфейс и находить метаданные (имена форм и элементов управления, имена обработчиков событий управления и т. д.), используя какой-либо инструмент для его проверки. Так же, как инструменты разработчика на веб-сайте.


Должны быть

  • Возможность проверять приложения Windows Forms, предназначенные для .NET 3.5 и выше;
  • Возможность нажимать стандартные элементы управления (кнопки, метки, текстовые поля) и формы, чтобы увидеть их Name;
  • Работает на Windows Server 2012 и выше / Windows 8.1 и выше;
  • бесплатно;

Должен иметь

  • Минимальные потери производительности;
  • Возможность видеть пространство имен проверяемых элементов управления;
  • Все эти возможности, но для пользовательских элементов управления (например, из сторонних библиотек);

Хотел бы иметь

  • Возможность просмотра соответствующих файлов исходного кода проверяемых элементов управления;
  • Возможность видеть свойства помимо имени;
  • Возможность видеть, какие обработчики событий зарегистрированы для различных событий;

Приятно иметь

  • Возможность перехода прямо к соответствующему файлу/коду в Visual Studio при открытом решении этого приложения;
  • Открытый источник.

Я искал варианты, найдя несколько вопросов о переполнении стека ( 1 , 2 , 3 ); однако эти вопросы часто очень «минимальны» (и, вероятно, не по теме), и ответы столь же короткие, обычно не более чем «вы пробовали [somelinkedapp]?». Я вижу большинство ответов, предлагающих «Соколиный глаз», которые я попробую через секунду, но все же я должен спросить:

Какой инструмент вы бы порекомендовали для вышеуказанных требований?

Обратите внимание, что в итоге я использовал/попробовал Hawkeye , который сработал для моего варианта использования. У меня еще недостаточно опыта, чтобы написать ответ / знать, рекомендую ли я его.
Пожалуйста, дайте ссылку на Hawkeye и, пожалуйста, вернитесь и опубликуйте ответ, чтобы помочь другим.
Я очень доволен Wинспекцией sourceforge.net/projects/wspawn .

Ответы (1)

В качестве бесплатного приложения я рекомендую набор инструментов Microsoft UI Automation из Windows SDK .

С помощью UI Inspect вы можете щелкнуть элемент пользовательского интерфейса, а затем просмотреть его имя и полный список другой информации, а использование Visual UI Automation Verify или AccScope может дать вам визуальное представление видимых элементов и, возможно, лучшее понимание иерархии.

Он отвечает этим требованиям:

  • Возможность проверять приложения Windows Forms, предназначенные для .NET 3.5 и выше.
  • Возможность нажимать стандартные элементы управления (кнопки, метки, текстовые поля) и формы
  • Работает на Windows Server 2012 и выше / Windows 8.1 и выше
  • Бесплатно
  • Минимальные потери производительности
  • Все эти возможности, но для пользовательских элементов управления (например, из сторонних библиотек)

Что касается пространств имен и (настоящих) имен элементов, я не являюсь гуру обратного проектирования, но я думаю, что это нарушает смысл и возможности проверки пользовательского интерфейса, и для такого подробного подробного обзора вам понадобится инструмент декомпилятора, такой как платный .Net Reflector от Red Gate или бесплатного Simple Assembly Explorer ( SAE ) и, при необходимости, de4dot для тех случаев, когда члены исходного кода запутаны/защищены (например, пространства имен и имена членов).

Они отвечают этим требованиям:

  • Возможность видеть пространство имен проверяемых элементов управления
  • Возможность видеть свойства, кроме имени
  • Возможность видеть, какие обработчики событий зарегистрированы для различных событий
  • Возможность просмотра соответствующих файлов исходного кода проверяемых элементов управления
  • ...чтобы увидеть ихName

    (конечно, мы говорим о реконструированном/отраженном исходном коде.)

Microsoft говорит , что Inspect — это устаревший инструмент , и рекомендует вместо него использовать Accessibility Insights .
Еще один лучший декомпилятор может редактировать ваш скомпилированный код. filecroco.com/download-dnspy