Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как сделать print scrn с помощью С++builder

30K
21 августа 2008 года
Дима Цветовик
13 / / 21.03.2008
как проэмитировать нажатие print scrn с помощью С++builder и где эта картинка хранится?
288
21 августа 2008 года
nikitozz
1.2K / / 09.03.2007
как проэмитировать нажатие print scrn с помощью С++builder и где эта картинка хранится?



Возможно не лучший вариант, но это первое что пришло в голову. Картинка сохранится в файле C:\Desktop.bmp

Код:
TImage *pImage = NULL;
    TCanvas *pCanvas = NULL;

    pImage = new TImage(this);
    pCanvas = new TCanvas();

    pCanvas->Handle = GetWindowDC( GetDesktopWindow() );

    pImage->Width = pCanvas->ClipRect.Width();
    pImage->Height = pCanvas->ClipRect.Height();
    pImage->Canvas->CopyRect(pCanvas->ClipRect, pCanvas, pCanvas->ClipRect);
    pImage->Picture->SaveToFile("C:\\Desktop.bmp");

    delete pImage;
    delete pCanvas;


Для того чтобы сохранить в буфере обмена, копайте в сторону SaveToClipboardFormat.
8.8K
21 августа 2008 года
Se AD WMD
165 / / 10.01.2007
Можеш попробывать вариант с keybd_event() и VK_SNAPSHOT или VK_PRINT а там уже из буфера обмена достать картинку.
3.7K
21 августа 2008 года
0nni
326 / / 24.06.2008
Вариант о nikitozz'а самый оптимальный, однако если хочется через клипбород, то у TBitmap есть методы SavetoClipBorad (или SavetoClipBrd) и соответственно LoadFrom... насчет TImage не помню.
536
28 августа 2008 года
alex-kniaz
382 / / 07.08.2008
В билдере как, не знаю, но приведу код под DELPHI (густо приправлен комментариями, так что проблем с переводом возникнуть не должно).
В форму надо добавить TImage.
Код:
function PrintScrn():TBitmap//Функция сканирования экрана.
var
 dc: THDC;   //Контекст рисования экрана
 x,y:integer; //координаты текущей сканируемой точки
begin
 dc:=GetDC(0); //Получаем контекст
 Image1.Canvas.Handle:=dc; //Назначаем его канве изображения
 //Сканирование (поточечное).
 for x:=0 to Scren.Width-1 do   //x
 for y:=0 to Screen.Height-1 do//y
  PrintScrn.Canvas.Pixels[x,y]:=Image1.Canvas.Pixels[x,y];//Цвет точки
end;
3.7K
28 августа 2008 года
0nni
326 / / 24.06.2008
Забыл кое что:
 
Код:
....
  ReleaseDc(0, DC); //Уничтожаем контекст!!!
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог