Как использовать клиент C# для получения информации о выбранном элементе GUI в другом приложении?

Может ли клиент C# записывать все события клавиатуры и мыши с помощью хуков и собирать информацию о выбранном элементе GUI?

Какую библиотеку вы бы использовали?

Является ли Spy++ опцией или для этого понадобится C++ DLL?

5 ответов

Решение

Лучше сделать это в C++, вам нужно зарегистрировать свой хук, затем вы можете создать мост, но в C# может быть полезна статья по проекту кода.

Да, ты можешь. Смотрите здесь и здесь. Это называется перехватом событий.

Вам не нужна никакая специальная библиотека. Кроме того, Spy++ - это отдельное приложение, которое делает это. Вы хотите написать что-то подобное с.NET?

Ознакомьтесь с Deskperience и их продуктом Screen Scraper Studio. Предлагает вам пробную версию с SDK.

Я пытаюсь подражать их функциональности в данный момент, но мне трудно это сделать, как я покажу один человек...

Ссылка на сайт Deskperience

UISpy.exe - это инструмент, использующий.net Automation Framework, который позволит вам поэкспериментировать с тем, что вы можете автоматизировать в C#.

Наряду с низкоуровневой клавиатурой и мышью, как описано Полом Сасиком в этом вопросе, вы можете преобразовать расположение экрана в объект автоматизации.net и получить дополнительную информацию о том, что нажимается или печатается.

У вас есть эта библиотека, которая особенно полезна для управляемых приложений. Я не очень уверен, как он взаимодействует с неуправляемым кодом, хотя.

Другие вопросы по тегам