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

Вниз

Как сменить фон раб. стола (bmp), если включен ActiveDesktop?   Найти похожие ветки 

 
Ал   (2003-04-17 09:27) [0]

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar("C:\SOMEPATH\SOME.BMP"),
SPIF_SENDWININICHANGE);
не катит! - так как меняет обои, но их под картинкой ActiveDesktop не видно (пока вручную не выключить ActiveDesktop).


 
c00ler   (2003-04-18 23:19) [1]

unit Active;

interface

uses windows,ComObj,ShlObj,Classes,SysUtils;

procedure GetInfo(Var CW,Style:string);
Procedure SetWall(S,Style:string);

implementation

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


procedure GetInfo(Var CW,Style:string);
var
Ad:IActiveDesktop;
Opt:TWallPaperOpt;
Buf:PWideCHar;
begin

Ad:= CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
Buf:= AllocMem(MAX_PATH*2);
try
AD.GetWallpaper(Buf, MAX_PATH*2, 0);
CW := Buf;
finally
FreeMem(Buf);
end;
opt.dwSize:=sizeof(opt);
ad.getwallpaperoptions(opt,0);

case Opt.dwStyle of
WPSTYLE_CENTER: Style := "Centered";
WPSTYLE_TILE: Style := "Tiled";
WPSTYLE_STRETCH: Style := "Stretched";
WPSTYLE_MAX: Style := "Maxed";
end;

end;


Procedure SetWall(S,Style:string);
Var AD:IActiveDesktop;
WidePath:PWideChar;
Opt:TWallPaperOpt;
Begin
Ad:= CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
opt.dwSize:=999999999;

if style=
"Centered" then Opt.dwStyle :=WPSTYLE_CENTER else
if style=
"Tiled" then Opt.dwStyle :=WPSTYLE_TILE else
if style=
"Stretched"then Opt.dwStyle :=WPSTYLE_STRETCH else
if style=
"Maxed" then Opt.DwStyle:=WPSTYLE_MAX;


GetMem(WidePath,255);
WidePath:=StringToWideChar(s,WidePath,255);
Ad.SetWallPaper(WidePath,0);
Ad.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
Freemem(WidePath);
opt.dwstyle:=wpstyle_center;
Ad.SetWallPaperOptions(Opt,1);
end;






end.
//setwall("c:\wp.bmp",centered)



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
3-83937
abc
2003-06-03 14:52
2003.06.26
как удалить таблицу c помощью SQL так, что бы...


8-84452
Andrew Pavluchenkov
2003-03-13 13:16
2003.06.26
Сохранение картинок с формы в текстовый файл (как в *.dfm )


14-84741
lord
2003-06-05 20:31
2003.06.26
WinPCap


1-84099
Alibaba
2003-06-10 13:24
2003.06.26
TThread


1-84228
LoMaster
2003-06-12 23:32
2003.06.26
Как программно создать EditBox (TEdit)?