Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Скриншот с рабочего стола.   Найти похожие ветки 

 
wizi   (2005-01-28 11:51) [0]

Увожаемые мастера не подскажете ли какой процедурой(функцией)можно сделать скриншот с рабочего стола не емулируя нажатия "PptScr"


 
Игорь Шевченко ©   (2005-01-28 12:13) [1]

Bitblt


 
wizi   (2005-01-28 22:11) [2]

спасибо большое


 
Георгий Бедный   (2005-01-29 13:28) [3]

А я так и не понял: как этот BitBlt работает? Мне надо в скринсейвере совместить бэкграунд с картинкой, чтобы не видно было цвета прозрачности. Понимаю, вопрос не новый, и всех уже достал, но чёт никак не получается это правильно сделать.
Заранее благодарен.


 
TUser ©   (2005-01-29 20:10) [4]


> Мне надо в скринсейвере совместить бэкграунд с картинкой

А скринсейвер не обязательно должен работать в полноэкранном режиме. Можешь рисовать просто на рабочем столе, через Canvas.Handle:=GetDC(0), только ReleaseDC потом не забудь.


 
TUser ©   (2005-01-29 20:14) [5]

Вообще, для скриншота - можно получить картинку с рабочего стола. Где записана эта картинка - см. в примерах в интеренете на тему "Как заменить обои на раб. столе"


 
kaZaNoVa ©   (2005-01-29 20:21) [6]

program Project1;

uses
Windows,SysUtils, Graphics,jpeg;

 function ScreenWidth:Integer;
begin
 Result := GetSystemMetrics(SM_CXSCREEN);
end;
function ScreenHeight:Integer;
begin
 Result := GetSystemMetrics(SM_CYSCREEN);
end;

Var  bmp1: TBitmap; jpg2:TJpegImage;FileName:String;
begin
if ParamCount<1 then
begin
FileName:=Paramstr(0);
delete(FileName,Length(FileName)-3,4);
FileName:=FileName+".jpg"
end else
FileName:=Paramstr(1);

bmp1 := TBitmap.Create;
jpg2 :=  TJpegImage.Create;
bmp1.Height := ScreenHeight;
bmp1.Width  := ScreenWidth;
BitBlt(bmp1.Canvas.Handle, 0, 0, ScreenWidth, ScreenHeight, GetDC(GetDesktopWindow), 0, 0, SRCCopy);
jpg2.Assign(bmp1);
if ParamCount<>2 then
jpg2.CompressionQuality:=57 else
jpg2.CompressionQuality:=StrToInt(Paramstr(2));

jpg2.Compress;
jpg2.SaveToFile(FileName);
bmp1.Free;  jpg2.Free;
end.


 
Георгий Бедный   (2005-01-30 17:45) [7]

Блин, ну я совсем запутался. Значит, так:
BitBlt(<хэндл канвы, на которой я рисую>, <???>, <???>, <высота рисуемого объекта>, <ширина рисуемого объекта>, <???>, <???>, <???>, <режим рисования прозрачных объектов>);
Так или нет?


 
BiN ©   (2005-01-31 12:31) [8]

>> Георгий Бедный

Заметь, в указанных ОС скринсэйвер запускается не на пользовательском десктопе, а на отдельном, специально для него созданном.



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
14-1109014939
тихий вовочка
2005-02-21 22:42
2005.03.13
Корпуса


6-1104863244
Донской
2005-01-04 21:27
2005.03.13
Прикол с tnmsmtp под winnt4


14-1108634829
uny
2005-02-17 13:07
2005.03.13
win98 долго входит в сеть при dialup, причём она сразу в сети


1-1109696237
T-LIS
2005-03-01 19:57
2005.03.13
Файл-менеджер.


1-1109201745
jcrush
2005-02-24 02:35
2005.03.13
Сравнить и заменить дополнить текстовые файлы в с каталоге