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

Вниз

Замена обоев на рабочем столе.   Найти похожие ветки 

 
tim5 ©   (2003-09-22 21:10) [0]

Привет Всем!!! Пожалуйста подскажите, как сделать чтобы при нажатии
на кнопку на рабочем столе изменялись обои. Я попробовал вот этот
код, но у меня он не работает.

procedure ChangeWallpaper(Path: String);
var
PC: Array[0..$FF] of Char;
begin
StrPCopy(PC, Path);
SystemParametersInfo(spi_SetDeskWallpaper, 0, @PC, spif_UpdateIniFile);
end;

Может я не указал каких-нибудь библиотек, подскажите какие должны быть.


 
dataMaster ©   (2003-09-22 21:16) [1]

{
"Замостить" обои:
SetWallpaper(путь,true,false );
По центру:
SetWallpaper(путь,false,true );
Растянуть:
SetWallpaper(путь,false,false );

}
procedure SetWallpaper(sWallpaperBMPPath : String; bTile,bRas : boolean );
var
reg : TRegIniFile;
begin
reg := TRegIniFile.Create("Control Panel\Desktop" );
with reg do
begin
WriteString( "", "Wallpaper", sWallpaperBMPPath );
if( bRas )then
begin
WriteString("", "WallpaperStyle", "0" );
end else begin
WriteString("", "WallpaperStyle", "2" );
end;
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;


 
dataMaster ©   (2003-09-22 21:23) [2]

Код

procedure ChangeWallpaper(Path: String);
var
PC: Array[0..$FF] of Char;
begin
StrPCopy(PC, Path);
SystemParametersInfo(spi_SetDeskWallpaper, 0, @PC, spif_UpdateIniFile);
end;


под 98 работает


 
Романов Р.В. ©   (2003-09-22 22:15) [3]

program ChWpp;

uses
ShlObj, ComObj, ActiveX, Windows;
{$R *.res}

const
CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}";

var
path: widestring;
ActiveDesktop: IActiveDesktop;
f: textfile;

begin
path := "E:\desktop\640x480\1024x768\NEW!\wallpaper_12.jpg";
if path <> "" then
try
CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
ActiveDesktop.SetWallpaper(PWideChar(path), 0);
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
finally
CoUninitialize;
end;

end.



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
1-18456
Denkop
2003-09-24 15:30
2003.10.06
Странная ошибка...


3-18256
Andrey V.
2003-09-15 14:57
2003.10.06
ib vs. fb


4-18671
незнающий
2003-06-28 04:14
2003.10.06
Шелл-хуки


4-18665
Delphi5.01
2003-07-31 19:09
2003.10.06
GetWindowText, GetNextWindow


1-18441
3APA3A
2003-09-24 23:53
2003.10.06
Проблема с ValueListEditor ом