![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рабочий стол [D7, XP]
Juri © (2006-12-28 20:52:00)имеется такая процедура у меня меняет обои на рабочем столе
procedure TForm1.ChangeActiveWallpaper(wal:PWideChar; i:Cardinal);
const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
ActiveDesktop: IActiveDesktop;
begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop)
as IActiveDesktop;
ActiveDesktop.SetWallpaper(wal, i);
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end;
всё работает отлично НО мне бы ещё знать как поставить обои на рабочем столе не растянутыми а к примеру по центру или нужно если замостить рабочий стол... может кто знает?
Juri (2006-12-29 22:45:00) [1]огромное спасибо!!!
allrussia (2006-12-29 22:29:00) [2]Sizeof(t)
Juri (2006-12-29 22:28:00) [3]
> Размер используемой структуры
от этого у меня ещё больше вапросов только появилось...
Zeqfreed (2006-12-29 22:27:00) [4]
> Juri (29.12.06 22:25) [6]
Размер используемой структуры.
Juri (2006-12-29 22:25:00) [5]нда я вот оттуда и вычитал что нужно через оптионс тока вот не могу понять что мне вносить в DWSize???
allrussia (2006-12-29 22:23:00) [6]Juri
var t: TWallPaperOpt;
t.dwSize = ...
t.dwStyle = ... ??
...
ActiveDesktop.SetWallpaperOptions(t, 0)
там же по ссылке которую я дал написано
Juri (2006-12-29 22:16:00) [7]судя по всему вставлять не туда...
есть такая функция ActiveDesktop.SetWallpaperOptions(); вот судя по всему куда только как не пойму может кто разобрался?
allrussia (2006-12-29 21:12:00) [8]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iactivedesktop/flags.asp
WPSTYLE_CENTER
The wallpaper is centered.
WPSTYLE_STRETCH
The wallpaper is stretched to fit the entire screen.
WPSTYLE_TILE
The wallpaper is tiled.
сюда вставлять судя по всему:
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE + WPSTYLE_CENTER);
Juri (2006-12-29 21:04:00) [9]никто не знает?
Juri (2006-12-28 20:53:00) [10]procedure TForm1.ChangeActiveWallpaper(wal:PWideChar; i:Cardinal);
" i " ввёл думал что с её помощью определяется положение обоев но нет попробовал беспалезно даже если её менять не помогает... так сказать методом науного тыка не палучилось вычислить...