Переопределение функций захвата экрана - PullRequest
0 голосов
/ 27 августа 2009

я хочу написать приложение на C #, такое как «fraps» и другие приложения захвата экрана, чтобы при нажатии «Print Screen» он сохранял текущий экран как изображение.

Что я думал о том, что

«я мог бы создать фоновый рабочий поток, который проверяет буфер обмена через x секунд, и, если изображение появляется в буфере обмена из-за щелчка на экране печати, он записывает содержимое буфера обмена в файл JPEG или растровое изображение» bu i не хватает следующих знаний

  • Как я узнаю, что в буфере обмена или в тексте или файле есть изображение

  • как записать этот буфер обмена в файл изображения, например, как преобразовать эти данные в формат JPEG (формат LZ-W) или растровое изображение и т. Д.

Может ли кто-нибудь наделить меня некоторыми знаниями, руководством или помощью с точки зрения программирования на C #

1 Ответ

2 голосов
/ 27 августа 2009

Сохранение в определенный формат невероятно легко благодаря классу Image:

myImage.Save("someimage.bmp", System.Drawing.Imaging.ImageFormat.Bmp);

Что касается проверки буфера обмена, то вы можете сделать это, но я думаю, что вы можете столкнуться с проблемами, которые вы не будете знать, было ли изображение получено с экрана печати или с Ctrl-c, что сделал пользователь , Однако вы можете легко проверить буфер обмена:

if (Clipboard.ContainsImage())  
    myImage = Clipboard.GetImage();
...