Я готов передать функции захвата экрана нашим приложением, потому что это не наш основной бизнес, и я потратил слишком много времени, пытаясь заставить наш код делать все, что мне нужно. Время для специалиста, я думаю. Мои требования, в порядке уменьшения важности, ниже. Кто-нибудь имеет опыт работы с любыми коммерческими или бесплатными библиотеками, отвечающими большинству или всем этим требованиям?Какие библиотеки экрана для экрана Windows (C++) соответствуют моим требованиям?
Должен работать в Windows XP и выше. (Но не Win95/98/Me.)
Visual C++ 2005 совместимый, где снимок экрана может быть запущен из моего кода. Предпочтительно статическая библиотека, но DLL или COM-объект в порядке. Я бы предпочел не распространяться на автономный EXE, потому что есть некоторые пользователи, которые попытаются вмешаться в наше приложение, и я думаю, что наличие отдельного снимка экрана EXE делает это слишком простым.
Должно быть в состоянии сделать скриншоты из нескольких систем мониторов. (Предпочтительно, как клавиша «Экран печати» делает в Windows, создавая растровое изображение дисплеев, сшитых вместе, но если мне нужно сделать снимки отдельно и объединить их, то это приемлемо.)
Должно быть в состоянии захватить экран правильно, когда клиент удаленного рабочего стола (или любой клиент RDP или виртуальная машина) находится в полноэкранном режиме. (Конечно, он также должен работать, когда RDP находится в оконном режиме, но это не должно быть проблемой, если оно не работает, имитируя нажатие клавиши, которое может быть передано на удаленную ОС, вместо того, чтобы обрабатываться локально.)
Должен быть способен правильно отображать экран, когда проигрыватель Windows Media (или любой другой медиаплеер) находится в полноэкранном режиме.
Должен быть способен правильно отображать экран, когда игра (например, World of Warcraft) находится в полноэкранном режиме.
Было бы неплохо иметь возможность захватить несколько секунд активности пользователя в качестве видео.
Я не думаю, что stackoverflow действительно должен быть доской. – Chad
Я не понимаю комментария Чада. Я прошу совета по правильному программному инструменту для конкретной задачи - это кажется мне совершенно по-разному. – jeffm