|
Вопрос # 4 157/ вопрос открыт / |
|
Здравствуйте, эксперты!
У меня вот такой вопрос к вам:
Я хочу сделать на Делфи 7 прогу которая будет делать сриншот с экрана и ставить себе на форму(в окно)в качестве фона этот сриншот десктопа,хотел спросить возможно ли это?
жду ваших советов и предложений.
Заранее благодарю.
 |
Вопрос задал: Kubanych (статус: Посетитель)
Вопрос отправлен: 14 мая 2010, 12:57
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: IlluminatI
Здравствуйте, Kubanych!
Кидаешь на форму TImage, в свойстве Align ставишь alClient. В событии формы onCreate пишешь CaptureScreen(Image1.Picture.Bitmap); (код в приложении).
Приложение: Переключить в обычный режим- procedure CaptureScreen(ABitmap: TBitmap);
- const
- CAPTUREBLT = $40000000;
- var
- hdcScreen: HDC;
- hdcCompatible: HDC;
- //bmp: TBitmap;
- hbmScreen: HBITMAP;
- begin
- // Create a normal DC and a memory DC for the entire screen. The
- // normal DC provides a "snapshot" of the screen contents. The
- // memory DC keeps a copy of this "snapshot" in the associated
- // bitmap.
-
- hdcScreen := CreateDC('DISPLAY', nil, nil, nil);
- hdcCompatible := CreateCompatibleDC(hdcScreen);
- // Create a compatible bitmap for hdcScreen.
-
- hbmScreen := CreateCompatibleBitmap(hdcScreen,
- GetDeviceCaps(hdcScreen, HORZRES),
- GetDeviceCaps(hdcScreen, VERTRES));
-
- // Select the bitmaps into the compatible DC.
- SelectObject(hdcCompatible, hbmScreen);
- ABitmap.Handle := hbmScreen;
- BitBlt(hdcCompatible,
- 0, 0,
- ABitmap.Width, ABitmap.Height,
- hdcScreen,
- 0, 0,
- SRCCOPY or CAPTUREBLT);
-
- DeleteDC(hdcScreen);
- DeleteDC(hdcCompatible);
- end;
 |
Ответ отправил: IlluminatI (статус: 2-ой класс)
Время отправки: 14 мая 2010, 13:40
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 18 мая 2010, 10:41; участников в обсуждении: 3.
|
Ерёмин А.А. (статус: *Администратор), 14 мая 2010, 13:01 [#1]:
Да, возможно
|
|
Kubanych (статус: Посетитель), 14 мая 2010, 13:15 [#2]:
супер, а каким образом?
не могли вы мне подсказать главный код.
|
|
DNK (статус: Студент), 14 мая 2010, 13:39 [#3]:
Скриншот в качестве фона для формы. Мне такая дикая идея даже голову не приходила. %-D
"Digital Networked Knight"
|
|
DNK (статус: Студент), 14 мая 2010, 14:26 [#4]:
Другое дело.
"Digital Networked Knight"
|
|
Kubanych (статус: Посетитель), 14 мая 2010, 14:30 [#5]:
ну раз узнал мою идею,подскажи как ето сделать.
|
|
DNK (статус: Студент), 14 мая 2010, 18:58 [#6]:
А чем не нравится способ предоставленный IlluminatI?
"Digital Networked Knight"
|
|
Kubanych (статус: Посетитель), 18 мая 2010, 10:41 [#7]:
Всё вопрос решил.
Спасибо IlluminatI
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|