Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно отобразить рабочий стол как 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо