Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
4-1107204385
rks
2005-01-31 23:46
2005.03.13
Программирование USB


14-1109082292
ParaSenok
2005-02-22 17:24
2005.03.13
Чат


1-1109177226
Aleksandr
2005-02-23 19:47
2005.03.13
Как прочитать первую и вторую строку текстового файла(*txt)?


8-1101366528
_Nikolay
2004-11-25 10:08
2005.03.13
Как сделать клиентскую область формы на весь экран ?


4-1102996884
school
2004-12-14 07:01
2005.03.13
диологи открытия-закрытия файлов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский