Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.04;
Скачать: CL | DM;

Вниз

Как заставить таскбар развернуться, чтобы показать все иконки?   Найти похожие ветки 

 
dmitry_12_08_74   (2008-08-15 12:34) [0]

Можно сделать так, чтобы таскбар разворачивался для показа всех скрытых иконок?


 
DVM ©   (2008-08-15 12:35) [1]

можно


 
dmitry_12_08_74   (2008-08-15 12:43) [2]

Спасибо за ответ, но как именно можно это сделать?


 
DVM ©   (2008-08-15 12:51) [3]


> dmitry_12_08_74

Речь идет о показе скрытых иконок в области уведомлений? (там где часики?)


 
DVM ©   (2008-08-15 13:06) [4]

Ладно, я сегодня добрый:

Варианта собственно три:

1 вариант.

Оболочка и собственно панель задач представляет собой набор COM объектов. Если найти нужный интерфейс (в MSDN) и посмотреть его методы, то наверняка среди них будет будет ответственный за скрытие/показ всех иконок в области уведомлений.

2. вариант.

Эксплорер считывает значение "Скрывать неиспользуемые иконки" из реестра. Если поменять значение в реестре, и заставить эксплорер перечитать это значение то получится то что требуется. Само значение лежит тут:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
EnableAutoTray REG_DWORD 0 or 1

3. Вариант.

Иммитрировать нажатие кнопки "Показать все иконки":


procedure TForm1.Button1Click(Sender: TObject);
var
 Wnd: THandle;
begin
 Wnd := FindWindow("Shell_TrayWnd", nil);
 if Wnd <> 0 then
   begin
     Wnd := FindWindowEx(Wnd, HWND(0), "TrayNotifyWnd", nil);
     if Wnd <> 0 then
       SendMessage(Wnd, WM_COMMAND, 1502, 0);
   end;
end;


 
dmitry_12_08_74   (2008-08-15 13:13) [5]

DVM, Большое Вам спасибо


 
dmitry_12_08_74   (2008-08-15 14:23) [6]

Выбрал 3-й вариант, но получается, что при повторном нажатии на кнопку иконка опять скрывается, а хотелось бы, чтобы такого не происходило


 
DVM ©   (2008-08-15 14:45) [7]


> dmitry_12_08_74

а зачем тебе это нужно? Ты хочешь чтобы твоя иконка в области уведомлений всегда была в поле зрения?


 
dmitry_12_08_74   (2008-08-15 15:41) [8]

Я хочу, чтобы иконка была всегда видимой когда над ней всплывает хинт. Хинты приходится отображать несколько раз. Поэтому Ваш 3-й вариант работает через раз: то иконка отобразится, то исчезнет при отображении хинта.


 
DVM ©   (2008-08-15 15:52) [9]


> dmitry_12_08_74   (15.08.08 15:41) [8]

Тогда предлагаю такой вариант:

Как известно если иконка скрыта, то она отображается, если ее изменяют. Пусть на такую же с тем же рисунком, но меняют, т.е. вызывают Shell_NotifyIcon( NIM_MODIFY, ....). Если все время модифицировать иконку, то она никогда не попадет в разряд скрываемых.


 
dmitry_12_08_74   (2008-08-15 16:16) [10]

спасибо, попробую



Страницы: 1 вся ветка

Текущий архив: 2009.10.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
15-1249286693
cwl
2009-08-03 12:04
2009.10.04
Аудионаркотики


2-1244576320
новичок13
2009-06-09 23:38
2009.10.04
прозрачна форма но не прозрачная картинка


2-1248432381
Franzy
2009-07-24 14:46
2009.10.04
Копирование картинки непопиксельно, а одним махом


2-1248858834
petr
2009-07-29 13:13
2009.10.04
Интернет и дата


2-1248854287
xyz
2009-07-29 11:58
2009.10.04
исключение "недопустимое имя"