Форум: "WinAPI";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
ВнизРабота с Desktop Найти похожие ветки
← →
Mover (2002-02-19 10:58) [0]Всем привет!
Если не затруднит, прошу знающих ответить на следующие вопросы:
1. - Как узнать, что включен Active Desktop? А так же отключить его при необходимости...
(ключика в реестре HKCU\Software\Microsoft\CurrentVersion\Policies\Explorer\NoActiveDesktop нет, проверял! Хотя сам Explorer его ищет, судя по RegMonitor).
2. - Как менять цвет фона у простого и у активного десктопа?
Меня не устраивает всем известное решение:
H1:=FindWindow("Progman",nil);
H1:=FindWindowEx(h1, 0, nil, nil);
H1:=FindWindowEx(h1, 0, nil, nil);
if H1<>0 then begin
SetLength(S, 40);
GetClassName(h1, PChar(S), 39);
if PChar(S) = "SysListView32" then begin
// Выберем случайный цвет
Red:=Random(100);
Green:=Random(100);
Blue:=Random(100);
C1:=$00010000*Blue+$00000100*Green+$00000001*Red;
ListView_SetBkColor(H1, C1);
end;
end;
так как оно не работает без рефреша, а установка фоновой картинки сбивает настройки и возвращает прошлый цвет фона.
PS. Облазил все форумы и FAQ... =( Нигде ничего или я плохо искал.
← →
VuDZ (2002-02-19 13:16) [1]а как на счёт поискать в реестре? там есть это всё - и цвет, и фоновая картинка...
← →
Mover (2002-02-19 13:47) [2]2 VuDZ:
Понимаешь... Просто у меня нет времени заниматься исследованиями реестра! =) Загнеться форум с такими "ответами"...
Кстати, вот надыбал:
HKCU\Control Panel\Colors (Background)
HKCU\Control Panel\Desktop (Wallpaper, TileWallpaper)
Картинку обновить - нет проблем! Но вот с цветом - это лажа какая-то. Реестр обновляй не обновляй, рабочий стол не реагирует.
Цвет остается старым до перезагрузки.
2All: С Active Desktop"ом кто-то работал?
← →
Pete (2002-02-19 16:07) [3]2 Mover:
А я сюда за ответами редко обрашаюсь. Просто интересно умных людей послушать... Мне кажется читает в несколько раз народу больше, чем отвечает и спрашивает...
А на счет того, что нет времени (или просто лень) изучать, так это зря... Интересно самому "победить" проблему...
← →
SerVS - S (2002-02-19 16:27) [4]Десктоп имеет IActiveDesktop. Я задавал это вопрос недельки две назад, посмотри там пример есть.
← →
Mover (2002-02-19 16:40) [5]Окей, не лень, просто нет времени... Скоро залью новую версию Wallpaper (v0.6) в Кладовку// Программы, там все о чем я спрашивал сам же и реализовал.
Одно вот пока только не нашел, как обновлять рабочий стол после установки нового Background Color... А то бы еще и его менял! =)
← →
Raptor (2002-02-19 22:12) [6]Вот-вот, SerVS - S првильно говорит. Поищи по ключу IActiveDesktop на этом форуме. Я уже раза 2 или 3 отвечал здесь на подобные вопросы. Или ищи в MSDN описание интерфейса IActiveDesktop.
← →
Mover (2002-02-20 12:28) [7]Нет, Raptor! Я спрашиваю одно, получаю другое.
Мне не надо код, КАК МЕНЯТЬ ФОН ДЛЯ ActiveDesktop.
Это я и так знаю... =) Вопрос: КАК ОПРЕДЕЛИТЬ, ВКЛЮЧЕН ИЛИ ВЫКЛЮЧЕН ActiveDesktop?!! Так вот, оказалось все очень сложно и запутано, но я проанализировал в реестре бинарный ключик ShellState - это единственное, что менялось. И оказалось, что в 5 байте 2 битик слева указывает как раз на галочку "Отображать содержимое, как Web-страницу". Вот код:
function Get_Active_Desktop: Boolean;
var
Buff: array [0..27] of Byte;
begin
Result:=False;
with TRegistry.Create do
try
bActive:=False;
RootKey:=HKEY_CURRENT_USER;
if OpenKey("\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer", False) then begin
// Определим состояние Desktop "Отображать, как Web-страницу"
ReadBinaryData("ShellState", Buff, SizeOf(Buff));
Result:=(Buff[4] and $40) <> 0;
CloseKey;
end;
finally
Free;
end;
end;
Спасибо за внимание... =)
Кстати, если кто расскажет, как менять цвет фона в обоих случаях, напишите письмом - буду очень признателен!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c