![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
смена фона рабочего стола [D5, D6, Win95/98, Win2k]
Virus © (2003-09-09 11:00:00)
Меняю фон(картинку) на рабочем столе вот этой процедурой:
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar("имя файл"),
SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE );
Если файл bmp-шный, то при вызове этой строки На рабочем столе сразу меняется картинка. А вот если JPEG, То С виду ничего не происходит, хотя если посмотреть в реестре, то там уже картинка сменена. т.е. если комп перегрузить, то появится на раб. столе уже новая.
ZEE (2003-09-09 12:15:00) [1]
var
bmp:TBitMap;
jpg: TJpegImage;
...
bmp:=TBitMap.Create;
jpg:=TJpegImage.Create;
jpg.LoadFromFile("...");
bmp.Width:=jpg.Width;
bmp.Height:=jpg.Height;
bmp.Canvas.Draw(0,0,jpg);
bmp.SaveToFile("...");
jpg.Free;
bmp.Free;
Virus (2003-09-09 11:57:00) [2]
>>или если с BMP - все ОК, то можно преобразовать в Битмап, ну и дальше понятно...
Этот вариант я тоже просматривал. Он мне даже больше нравится. Но проблема в том, как преобразовать в битмап.
ZEE (2003-09-09 11:20:00) [3]
как вариант - можно после этого обновить рабочий стол
например так:
ShellExecute(Application.Handle,
Pchar("Open"),Pchar("C:\Winsdows\Rundll32.exe"),
Pchar("user,repaintscreen"),
Pchar("C:\Winsdows\"),SW_SHOWNORMAL);
или если с BMP - все ОК, то можно преобразовать в Битмап, ну и дальше понятно...