|
slamer
|
|
Программно делать ScreenShot рабочего стола.06.10.2006, 17:04. Показов 4378. Ответов 5
Метки нет (Все метки)
Добрый день, собс-но задача - нужно програмно делать ScreenShot рабочего стола на С#. Когдато еще на VC++ 6 делал такое через GDI и Win32Api. Не подскажите, нет ли в .NET FW каких то своих классов, которые могли бы помочь в решении данной задачи? В MSDN нашел некий класс - Screen но кажется это не то.
Спасибо! PS: VisualStudio 2005, C#. |
|
| 06.10.2006, 17:04 | |
|
Ответы с готовыми решениями:
5
программно поменять картинку рабочего стола Как программно нажать клавишу F5 для обновления рабочего стола из своего приложения? Как программно сменить фон рабочего стола |
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
|
| 06.10.2006, 17:52 | |
|
Не знаю можно ли это сделать используя только классы из FCL, но поиск в Google дает только примеры с использованием WinAPI. Вот один из них - http://www.developerfusion.co.uk/show/4630/ http://www.developerfusion.co.uk/show/4630/.
0
|
|
|
slamer
|
|
| 09.10.2006, 21:43 | |
|
Спасибо bazile, вобщем сделал как раньше, кстати ссылка очень помогла, т.к. раньше у меня только bmp'шки создавались.
|
|
|
slamer
|
|||||||||||
| 09.10.2006, 22:04 | |||||||||||
|
Кстати, не подскажите как в C# получить хендлер активного окна?
В том примере в метод можно передать указатель на нужное окно, а как его получить? Пробовал следующее -
Как быть? |
|||||||||||
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
|
| 09.10.2006, 22:41 | |
|
GetForegroundWindow должна работать без проблем. Тестовый пример у меня прекрасно получает HWND активного окна. Единственное, что судя по документации возможны моменты когда GetForegroundWindow возвращает NULL. В этом случае можно воспользоваться функцией <GetTopWindow>.
0
|
|
|
slamer
|
|
| 10.10.2006, 16:15 | |
|
Точно, все работает, просто проблема в другом, я пытался получить активное окно через контекстное меню в системном трее, следовательно фокус с окна слетал и я получал кусок рабочего стола начиная с левого верхнего угла.
Теперь другая проблема ), я нахожу нужное окно (оно неактивное и закрыто другими) через IntPtr handler = FindWindow(string lpClassName (= null), string lpWindowName), по названию (оно известно), передаю его функции GetWindowDC(handler) для получения контекст девайса, далее как в примере по Вашей ссылке создается скриншот. В итоге я получаю картинку, правильных размеров (т.е. размер соответствует нужному) а вот на картинке куски верхних окон, которые попали в прямоугольник нужного окна. Не поясните где неточность? Неправильно определяется GetWindowDC(handler)? |
|
| 10.10.2006, 16:15 | |
|
Помогаю со студенческими работами здесь
6
Сканирование рабочего стола
Изменение заставки рабочего стола Скриншот рабочего стола с курсором
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|