Главная страница
    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.031 c
1-1109546756
KyRo
2005-02-28 02:25
2005.03.13
Директория программы


14-1108983986
КаПиБаРа
2005-02-21 14:06
2005.03.13
По поводу <<Поле "Тема вопроса" не оформлено>>


4-1107179834
Sh
2005-01-31 16:57
2005.03.13
Чтение файла


14-1108879176
begin...end
2005-02-20 08:59
2005.03.13
С Днём рождения! 20 февраля


1-1109616668
Bloody-Wolf
2005-02-28 21:51
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский