Используйте код, чтобы сделать снимок экрана запущенного приложения - PullRequest
4 голосов
/ 17 января 2010

Мне нужно запустить некоторый код для захвата окна приложения, работающего на рабочем столе Windows (Windows XP здесь подойдет).

В Интернете есть несколько примеров VB6, но они, как правило, фиксируют работающее приложение VB6 или только рабочий стол. Я ищу решение, которое фиксирует данное окно / приложение. Итак, я хочу предоставить имя окна приложения для захвата.

Быстрый поиск Bing привел к некоторым примерам кода, но они захватили рабочий стол или текущее работающее приложение VB6. Я хочу изменить один из них, чтобы захватить данное окно (названное приложение).

Однако, прежде чем я сделаю это, возможно, у кого-то есть ссылка на пример кода библиотеки vb6 или VBA, который запишет / сохранит заданное именованное окно приложения в bmp или файл образа какого-либо типа на жестком диске.

Ссылка на решение VB6 или VBA в порядке. Я готов изменить существующий пример.

Ответы [ 2 ]

9 голосов
/ 17 января 2010

Вы, вероятно, уже знаете это, но окна идентифицируются уникальной 4-байтовой длиной, называемой дескриптором окна . Любой пример кода для захвата экрана может сделать любое окно: рабочий стол, текущее приложение или любое работающее приложение. Вам просто нужно использовать правильный дескриптор окна.

Вот некоторые строительные блоки:

  1. Найти дескриптор окна для приложения на основе заголовка или его части. Взято с отличного сайта VB6 Карла Е Петерсона. Или вот статья базы знаний Microsoft, чтобы сделать то же самое. РЕДАКТИРОВАТЬ Или для одноразовой работы, подобной вашей, просто найдите ее вручную, щелкнув по окну с помощью инструмента отладки, такого как Spy ++ или бесплатного клона .
  2. Вот код для получения снимка экрана рабочего стола от превосходного vbAccelerator Стива МакМахона. Просто измените код так, чтобы он использовал дескриптор окна, найденный на шаге 1, а не дескриптор окна, возвращаемый GetDesktopWindow().
1 голос
/ 17 января 2010

Я собрал здесь некоторый код, чтобы зафиксировать ошибку из Access в другом приложении, в качестве упражнения он использует для этого окна, поэтому код может быть вам полезен: http://forum.lessthandot.com/viewtopic.php?f=95&t=7969#p39648

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...