Мне нужно взять существующее приложение winforms и перейти в режим трассировки событий , с надеждой на как можно меньшее трение.
Я бы хотел видеть каждое действие, которое пользователь выполняет, как простую трассирующую вещь:
MainForm.LaunchThing_Click
ThingWindow.NameInput_Focus
ThingWindow.NameInput_TextChanged
ThingWindow.AddressInput_Focus
ThingWindow.OKButton_Click
и т. Д.
- Если бы это было приложение WPF, я бы сделал что-то вроде фильтрации всех событий типа WClientInputMessage в ETW.
- Я не могу просто сбросить трассировку стека, потому что она не фиксирует предыдущие действия пользователя.
- Я мог бы добавить ведение журнала к каждому отдельному событию [с рекомендациями этого обсуждения ], но это существующее приложение с далеко слишком большим количеством событий. Плюс я ленивый. Должен быть лучше.
- Я не могу прикрепить отладчик, я хочу автоматически прикрепить эту информацию к отчетам об ошибках от тестирования пользователей на местах, потому что [получается ...] никто не может точно вспомнить, что именно последовательность действий, на которую они нажали, была.
Так что мне интересно, есть ли у кого-нибудь хорошие приемы, возможно, с использованием подклассов или рефлексии, чтобы привязаться к событиям пользовательского интерфейса.
Производительность на самом деле не проблема. И если я могу подключиться к каждому событию, этого достаточно; Я могу довольно легко отфильтровать их до соответствующего набора.