Форум: "Основная";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизКак программно отобразить рабочий стол как Web страницу Найти похожие ветки
← →
Freeze (2002-07-31 08:36) [0]Пробовал заменить обои 4 способами не получается. Help me!!! Ни один из этих способов не пашет. Один получился, но он пашет только тогда, когда рабочий стол отображен как web страница.
← →
Destroyer (2002-07-31 08:49) [1]Если 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;
← →
Destroyer (2002-07-31 08:52) [2]Это чтоб сразу применились обои, а вообще надо в ключ
\Control Panel\Desktop реестра в строковую переменную Wallpaper закатать путь до bmp-файла обоев
← →
Пастор (2002-07-31 11:00) [3]Для этого совсем не обязательно использовать 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 11:12) [4]2Пастор
Понятно, что не обязательно, но если рабочий стол используется как Active Desktop, то SystemParametersInfo не дает немедленного применения обоев после изменения, в этом случае прокатит описанный мной выше способ...если рабочий стол не Active Desktop, то через SystemParametersInfo работает нормально...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c