![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно отобразить рабочий стол как Web страницу [D5, Win95/98]
Freeze © (2002-07-31 08:36:00)Пробовал заменить обои 4 способами не получается. Help me!!! Ни один из этих способов не пашет. Один получился, но он пашет только тогда, когда рабочий стол отображен как web страница.
Destroyer (2002-07-31 11:12:00) [1]2Пастор
Понятно, что не обязательно, но если рабочий стол используется как Active Desktop, то SystemParametersInfo не дает немедленного применения обоев после изменения, в этом случае прокатит описанный мной выше способ...если рабочий стол не Active Desktop, то через SystemParametersInfo работает нормально...
Пастор (2002-07-31 11:00:00) [2]Для этого совсем не обязательно использовать ActiveDesktop
procedure TFormImage.BitBtnClick(Sender: TObject);
var
Reg : TRegIniFile;
const
Stretch : bool = True ;
Tile : bool = False;
begin
Reg := TRegIniFile.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey("\Control Panel\Desktop",False);
if Tile then Reg.WriteString("", "TileWallpaper" , "1" )
else Reg.WriteString("", "TileWallpaper" , "0" );
if Stretch then Reg.WriteString("", "WallpaperStyle", "2" )
else Reg.WriteString("", "WallpaperStyle", "0" );
Reg.Free;
SystemParametersInfo(spi_SetDeskWallPaper,1,
PChar(GetWindowsDirectory + MyWallpaper),
spif_SendWinIniChange + spif_UpdateIniFile);
end;
Destroyer (2002-07-31 08:52:00) [3]Это чтоб сразу применились обои, а вообще надо в ключ
\Control Panel\Desktop реестра в строковую переменную Wallpaper закатать путь до bmp-файла обоев
Destroyer (2002-07-31 08:49:00) [4]Если ActiveDesctop, то
Application.Initialize;
ActiveDesktop:=CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
где
const CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}";
var ActiveDesktop: IActiveDesktop;