Чтение и реагирование на критерии соответствия на экране - PullRequest
0 голосов
/ 03 марта 2009

Я хочу разработать что-то для моей системы Win32, которое сможет находить и реагировать на определенные события на экране. Например, когда диапазон растровых изображений (100,100) - (130,130) моего экрана (часть экрана 30x30 пикселей) соответствует предоставленной базовой линии 30x30 пикселей, выполните определенное действие.

Кто-нибудь может заставить меня начать с этим? Возможно, есть структура, которая облегчит это? Или пакет, который я могу использовать? Или даже, возможно, сторонняя утилита?

1 Ответ

1 голос
/ 03 марта 2009

Вы можете попробовать получить окно рабочего стола (GetDesktopWindow), а затем получить контекст устройства для него (GetWindowDC), а затем создать совместимый контекст устройства в памяти (CreateCompatibleDC), создайте совместимое растровое изображение на рабочем столе постоянного тока (CreateCompatibleBitmap), выберите его в памяти постоянного тока (SelectObject) ), а затем выполните бит-бит для интересующего вас региона с рабочего стола постоянного тока в постоянный память (BitBlt). Не забудьте очистить после всего этого.

О, и если вы делаете это в управляемом коде, вы можете найти все эти API на PInvoke.net . Вам также нужно будет использовать Imaging.CreateBitmapSourceFromHBitmap, чтобы скопировать растровое изображение из собственного растрового изображения в управляемое растровое изображение.

Я пишу все это по памяти; раньше он работал на XP, но я не пробовал на Vista или Win7.

РЕДАКТИРОВАТЬ: Быстрый поиск в сети «захват экрана .Net» возвращает пару попаданий, включая этот с примером кода в C # и VB.Net.

...