Текущий архив: 2006.04.16;
Скачать: CL | DM;
ВнизКлавиатура Windows в Delphi Найти похожие ветки
← →
Mozgan (2006-03-31 11:19) [0]Здравствуйте, Мастера! Скажите, пожалуйста, как можно перехватить нажатие кнопки PrintScreen (PrtScr). Мне нужно программно снять изображение экрана.
← →
Mozgan (2006-03-31 11:34) [1]Не понимаю, куда все подевались :(
← →
Turbid © (2006-03-31 12:23) [2]Определись что именно тебе нужно - перехватить или программно нажать
← →
Sysanin (2006-03-31 12:23) [3]Если тебе программно надо снять изображение с экрана, то зачем тебе перехватывать нажатие кнопки? Для получения изображения можешь юзать вот этот код
...
var
ScreenDC: HDC;
bmp : TBitmap;
jpg : TJPEGImage;
begin
pic_stream:= TMemoryStream.Create;
bmp := TBitmap.Create;
bmp.PixelFormat := pf24bit;
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, GetDC(0), 0, 0, SRCCOPY);
jpg := TJPEGImage.Create;
jpg.Assign(bmp);
jpg.ProgressiveEncoding := true;
jpg.CompressionQuality := quarl_screen;
jpg.Compress;
bmp.Free;
jpg.SaveToFile("temp.jpg");
jpg.Free;
end;
Этот код сохранит тебе слепок экрана в формате jpg, вообщем брал из рабочей программы мот что лишнее будет...
← →
Mozgan (2006-03-31 14:00) [4]Спасибо! У меня только не получилось откомпилить :(
Дельфи ругает, на неопределение ижентификаторов
pic_stream и quarl_screen.
в uses я добавил JPEG. Может что не добавилб а?
Подскажи пожалуйста.
← →
Mozgan (2006-03-31 14:07) [5]Все ребят, догадался! Большое спасибо!!!!
Мастера, только один и последний :) вопрос: Как этот снимок сделать рисунком рабочего стола, т.е. отправить на десктоп?
← →
Turbid © (2006-03-31 21:10) [6]В принципе, все настройки на фоновый рисунок хранятся в реестре. Поэтому надо сначала скопировать картинку в какое-нибудь место (лучше в каталог Виндов) на случай удаления или переноса исходного файла. Информация по обоям хранится в разделе HKEY_CURRENT_USER\Control Panel\Desktop в параметрах TileWallpaper (если 1 - рисунок размножен, 0 - в центре), Wallpaper - путь к файлу обоев (gif, bmp, jpg), WallpaperStyle - если 2, то обои будут растянуты (отсутствует в 95 винде).
ПОсле установки всех занчений обновляешь рабочий стои и наслаждаешься эффектом.
Автор ответа: Garik
Взято с Vingrad.ru http://forum.vingrad.ru
--------------------------------------------------------------------------------
Смена обоев только на время текущего сеанса, после перезагрузки обои восстановятся:
var Wallpaper : string;
begin
Wallpaper := "C:\windows\ACD Wallpaper.bmp";
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, PChar(Wallpaper), SPIF_SENDCHANGE)
end;
Автор: p0s0l
--------------------------------------------------------------------------------
program wallpapr;
uses Registry, WinProcs;
procedure SetWallpaper(sWallpaperBMPPath:String;bTile:boolean);
var
reg : TRegIniFile;
begin
// Изменяем ключи реестра
// HKEY_CURRENT_USER
// Control Panel\Desktop
// TileWallpaper (REG_SZ)
// Wallpaper (REG_SZ)
reg := TRegIniFile.Create("Control Panel\Desktop" );
with reg do begin
WriteString( "", "Wallpaper",
sWallpaperBMPPath );
if( bTile )then
begin
WriteString("", "TileWallpaper", "1" );
end else begin
WriteString("", "TileWallpaper", "0" );
end;
end;
reg.Free;
// Оповещаем всех о том, что мы
// изменили системные настройки
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil,
{Эта строка - продолжение предыдущей}SPIF_SENDWININICHANGE );
end;
// пример установки WallPaper по центру рабочего стола
SetWallpaper("c:\winnt\winnt.bmp", False );
//Эту строчку надо написать где-то в программе.
Взято из http://forum.sources.ru
--------------------------------------------------------------------------------
var
Reg: TRegIniFile;
begin
Reg := TRegIniFile.Create("Control Panel");
Reg.WriteString("desktop", "Wallpaper", "c:\windows\mybmp.bmp");
Reg.WriteString("desktop", "TileWallpaper", "1");
Reg.Free;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end
Взято из http://forum.sources.ru
← →
Turbid © (2006-03-31 21:15) [7]Забыл сказать, все это взял с Delphi Russian Knowledge Base: http://www.drkb.ru/
Не поленись и скачай
← →
Mozgan (2006-03-31 21:18) [8]В принципе, да.
Факт, что вне настройки в реестре копать нужно - это ясно.
Но вот где гарантия, что смена возможна файлов с расширением jpeg (jpg)?
Все работает коректно только с файлами bmp 8(
Страницы: 1 вся ветка
Текущий архив: 2006.04.16;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.042 c