![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно сменить фоновый рисунок рабочего стола? [D6, Win95/98, WinME, NT4, Win2k, WinXP]
rts111 © (2005-02-09 22:09:00)Я сделал изменения в registry:
procedure TForm1.Button1Click(Sender: TObject);
var
a:TRegistry;
begin
a:=TRegistry.Create;
a.OpenKey('\Control Panel\Desktop',false);
a.WriteString('Wallpaper','c:\myPic.bmp');
a.WriteString('WallpaperStyle','0');
a.Free;
... ??? ...
end;
Что нужно сделать,
что-бы новая картинка появилась на рабочем столе(без перезагрузки)?
КаПиБаРа (2005-02-10 12:37:00) [1]
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.
rts1111 (2005-02-10 12:27:00) [2]???
iskatel (2005-02-10 00:24:00) [3]десктоп обновить наверное, а вообще вроде есть сообщение, которое картинку меняет, только я его не помню, поищи