Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2007, 22:00   #21
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

Цитата:
Сообщение от Omedus Посмотреть сообщение

Код:
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
Omedus, можешь дать описание этой функции и преременной DC?
north вне форума Ответить с цитированием
Старый 06.11.2007, 23:03   #22
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

прикольна =) вот бы и мне так всё писали.... кстате тож ошыбочка выходит... а на счёт Open/Save диалоги там всё очень просто ! Разберись сам ... ты ведь хочеш всё знать =)
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 31.08.2008, 17:21   #23
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Всем привет. В поиске нашел тему, чтобы не создавать новую. Вот конечно ситуация из не приятных. Делаю снимок экрана как обычно GetDC(0) ну и т.д. только вот у меня стоит Windows Blinds ) и если ты жмеш на окно и начинаеш его перемещать, а потом вовремя перемещения окна делаещ снимок экрана то снимок получается без этого окна. Если средствами PrtScr )) винды то все ок. Знаю что можно с имитировать нажатие клавишы PrtScr но мне требуется доставать изображение окна ) таким образом
BOBAH13 вне форума Ответить с цитированием
Старый 31.08.2008, 22:38   #24
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Всем привет. В поиске нашел тему, чтобы не создавать новую. Вот конечно ситуация из не приятных. Делаю снимок экрана как обычно GetDC(0) ну и т.д. только вот у меня стоит Windows Blinds ) и если ты жмеш на окно и начинаеш его перемещать, а потом вовремя перемещения окна делаещ снимок экрана то снимок получается без этого окна. Если средствами PrtScr )) винды то все ок. Знаю что можно с имитировать нажатие клавишы PrtScr но мне требуется доставать изображение окна ) таким образом
Если я правильно понял, то вы хотите достать изображение скриншота из буфера обмена? Если да, то это можно сделать так:

Код:
Uses
 ClipBRD,...
----------
Procedure TForm1.Button1Click(Sender: TObject);
Begin
Image1.Picture.Assign(Clipboard);
End;
Гляньте ещё ссылку, может поможет: http://sources.ru/delphi/delphi_simu...ntscreen.shtml
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 31.08.2008, 23:48   #25
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Нет не кактит. Я пока отказался от windows blinds для теста... без него окна нормально снимаются )) странно как то...
BOBAH13 вне форума Ответить с цитированием
Старый 04.09.2008, 03:19   #26
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Посылаем сочетание клавиш:
keybd_event(VK_SNAPSHOT, 0, 0, 0);
keybd_event(VK_SNAPSHOT, 1, KEYEVENTF_KEYUP, 0);
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 04.09.2008, 19:49   #27
MaslovArt
 
Регистрация: 04.09.2008
Сообщений: 4
По умолчанию

а как выдернуть цвет пикселя по координатам?
MaslovArt вне форума Ответить с цитированием
Старый 10.04.2013, 14:40   #28
Entropy
 
Аватар для Entropy
 
Регистрация: 09.04.2013
Сообщений: 5
По умолчанию

То есть, код для создания скринов выглядит так:
Код:
//screen
procedure TForm1.Button75Click(Sender: TObject);
var DC: HDC;
bmp: TBitmap;
begin
bmp:=TBitmap.Create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
bmp.SaveToFile('c:/Screen.jpg'); //Здесь можешь изменить путь, куда нужно сохранить файл. Так же в этой строчке изменяется название файла.
ReleaseDC(0, DC);
bmp.Free;
end;
Вопрос: как сделать так, чтобы скринился не целый экран, а только область экрана?
Вопрос 2: как сделать, чтобы каждый последующий скрин имел название Screen1, Screen2, Screen3, и т.д.?

Последний раз редактировалось Entropy; 10.04.2013 в 14:50.
Entropy вне форума Ответить с цитированием
Старый 10.04.2013, 16:29   #29
Entropy
 
Аватар для Entropy
 
Регистрация: 09.04.2013
Сообщений: 5
По умолчанию

Спасибо себе , уже сам разобрался:
Код:
//screen
procedure TForm1.Button75Click(Sender: TObject);
var
DC : HDC;
bmp : TBitmap;
jpgImg: TJPEGImage;
begin
bmp := TBitmap.Create;
jpgImg := TJPEGImage.Create;
bmp.Height := Screen.Height;
bmp.Width := Screen.Width;
DC := GetDC(0);
Bmp.SetSize( 80, 300 );//размеры области
bitblt(bmp.Canvas.Handle,0,0,Screen.Width,Screen.Height,DC,52,215{координаты},SRCCOPY);
ReleaseDC(0, DC);
jpgImg.Assign(bmp);
jpgImg.CompressionQuality:=90;
p:=(p+1);
JpgImg.SaveToFile('C:\'+inttostr(p)+'.jpg');
jpgImg.Free;
bmp.Free;
end;
Entropy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разрешение экрана Михаил Юрьевич Общие вопросы Delphi 3 11.07.2008 21:33
Разрешение экрана -=<[Evklidd]>=- Общие вопросы Delphi 1 20.02.2008 10:55
как сделать так что при изменении разрешения экрана программа работала... Victor[famas] Общие вопросы Delphi 7 13.02.2008 12:48
Как сделать снимок экрана в графическом режиме? Борис2 Паскаль, Turbo Pascal, PascalABC.NET 9 08.12.2007 21:07
Снимок экрана Viteef Общие вопросы Delphi 9 16.05.2007 20:12