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

Вниз

"Перезапуск" иконок в трее   Найти похожие ветки 

 
IceBeerg ©   (2005-10-13 18:26) [0]

В общем так. Снимаю через диспетчер задать explorer и болшинство иконок из трея пропадают.
Есть ли способ как то оповестить запущенные программ, что им надо заово иконки свои винде пихнуть?
И вообще какой может быть выход из подобной ситуации?
Не снимать explorer через диспетчер задач НЕ прдлагать, иногда приходится.


 
IceBeerg ©   (2005-10-13 18:28) [1]

Ой, помоему не туда вопрос кинул, надо в потрепаться, извиняюсь.


 
Leonid Troyanovsky ©   (2005-10-13 18:42) [2]


> IceBeerg ©   (13.10.05 18:26)  

> Есть ли способ как то оповестить запущенные программ, что
> им надо заово иконки свои винде пихнуть?


For IE4+
WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated")

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2005-10-13 18:45) [3]


> Leonid Troyanovsky ©   (13.10.05 18:42) [2]

> > Есть ли способ как то оповестить запущенные программ,

> WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated")


В смысле, что если они его не обрабатывают, то, видимо, только перезапустить.

--
Regards, LVT.


 
IceBeerg ©   (2005-10-13 18:52) [4]

Leonid Troyanovsky ©   (13.10.05 18:42) [2]
ОК, попробую.

Leonid Troyanovsky ©   (13.10.05 18:45) [3]
В смысле, что если они его не обрабатывают, то, видимо, только перезапустить.

Непонял... 8(


 
Ball   (2005-10-13 19:04) [5]

http://www.delphikingdom.info/asp/answer.asp?IDAnswer=29588


 
Leonid Troyanovsky ©   (2005-10-13 19:04) [6]


> IceBeerg ©   (13.10.05 18:52) [4]

> В смысле, что если они его не обрабатывают, то, видимо,
> только перезапустить.

> Непонял... 8(


Это сообщение рассылается широковещательно при рестарте explorer
окнам верхнего уровня, которые могут, например, восстановить свои иконки.
Ну, а если они не восстанавливают, значит они его игнорируют ;)

--
Regards, LVT.

PS Сначала мне показалось, что речь идет о своих приложениях.


 
Leonid Troyanovsky ©   (2005-10-14 16:19) [7]


> IceBeerg ©   (13.10.05 18:26)  

> И вообще какой может быть выход из подобной ситуации?


 Можно было бы сделать приложение с (невидимой) формой, которое:

1. будет хранить список проблемных приложений, не умеющих
 восстанавливать свои иконки, и хранить данные, необходимые для
 восстановления  иконок;
2. будет запущено раньше проблемных приложений;
3. соберет данные всех проблемных приложениях  с помощью
установки хука на окно ShellTray_Wnd и отлова  WM_COPYDATA;
4. при обработке TaskbarCreated будет посылать окну  ShellTray_Wnd  
SendMessage(h, WM_COPYDATA, ..) c dwID = $34753423
и  параметрами, сохраненными раннее для каждого приложения.

В качестве структуры данных можно испытать изложенное в

http://groups.google.com/group/fido7.su.win32.prog/msg/d966e07f9ad4c70e

Одна проблема очевидна уже на этой стадии: приложения, меняющие
после старта свою иконку, хинт, и т.д. могут оказаться в несогласованном
со своим изображением состоянии.

Но, в любом случае, IMHO, это может оказаться более интересным
развлечением на выходные,  чем вариант с простым рестартом.

--
Regards, LVT.


 
Antonn ©   (2005-10-14 16:56) [8]

Leonid Troyanovsky ©   (13.10.05 18:45) [3]
WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated")

если не секрет, что за сообщение, в Delphi7 его не нашел.


 
Leonid Troyanovsky ©   (2005-10-14 17:51) [9]


> Antonn ©   (14.10.05 16:56) [8]

> WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated")
> если не секрет, что за сообщение, в Delphi7 его не нашел.


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell _int_programming/taskbar.asp

--
Regards, LVT.


 
Antonn ©   (2005-10-14 18:00) [10]

Leonid Troyanovsky ©   (14.10.05 17:51) [9]
прошу прощения за наглость, но не могли бы вы просто сказать значение WM_TASKBARCREATED? по данной ссылке не нашел(или не понял, что искать). WM_TASKBARCREATED в поиске выдает "not found"


 
Leonid Troyanovsky ©   (2005-10-14 18:28) [11]


> Antonn ©   (14.10.05 18:00) [10]

> прошу прощения за наглость, но не могли бы вы просто сказать
> значение WM_TASKBARCREATED? по данной ссылке не нашел(или
> не понял, что искать).


Конкретное значение выдает RegisterWindowMessage.
Ссылка, к сожалению, здесь искажается.
Следует скопировать ее целиком, скажем, в Notepad и убрать лишнее (в
т.ч. и пробелы).
Или, в строке поиска msdn.microsoft.com набрать "TaskbarCreated" -
там, IMHO, лишь одна ссылка: The Taskbar (Windows Explorer and Controls)

--
Regards, LVT.


 
Antonn ©   (2005-10-14 18:31) [12]

Leonid Troyanovsky ©   (14.10.05 18:28) [11]
Конкретное значение выдает RegisterWindowMessage.

покопаюсь...

>Ссылка, к сожалению, здесь искажается.
> Следует скопировать ее целиком, скажем, в Notepad и
>убрать лишнее (в
>т.ч. и пробелы).
> Или, в строке поиска msdn.microsoft.com набрать
>"TaskbarCreated" -
> там, IMHO, лишь одна ссылка: The Taskbar (Windows
> Explorer and Controls

знак переноса надо лишь убрать(%20) в пути, догодался:)


 
Lexer ©   (2005-10-21 14:30) [13]

IceeBerg, если тебе надо просто перезапускать explorer, чтоб при этом не пересоздавлась панль задач, то попробуй выделить панель задач в отдельный ппроцесс.

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer

Добавь туда ключ DesktopProcess типа DWORD со значением 1.


 
Eraser ©   (2005-10-21 19:50) [14]

Может поможет вот это
http://help.madshi.net/TrayIcons.htm


 
GrayFace ©   (2005-10-22 17:08) [15]

Antonn ©   (14.10.05 16:56) [8]
WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated")
если не секрет, что за сообщение, в Delphi7 его не нашел.

В Forms есть RM_TaskbarCreated, только оно в interface.
Примерно так надо:

TForm1 ...
protected
  procedure WndProc(var msg:TMessage); override;
end;

implementation

procedure TForm1.WndProc(var msg:TMessage); override;
begin
  inherited;
  if msg.Msg=RM_TaskbarCreated then
  begin
    TrayIcon.Visible:=false;
    TrayIcon.Visible:=true;
  end;
end;

initialization
 RM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated")
end;



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

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

Наверх




Память: 0.51 MB
Время: 0.052 c
2-1134390880
De1uxe
2005-12-12 15:34
2005.12.25
Где ошибка?


14-1133415994
WondeRu
2005-12-01 08:46
2005.12.25
С днем рождения, Керк!


14-1133524554
syte_ser78
2005-12-02 14:55
2005.12.25
Кто тут самый добрый?


3-1130927746
SergP.
2005-11-02 13:35
2005.12.25
Не работает запрос..


1-1133417197
RoboCop
2005-12-01 09:06
2005.12.25
Удалить границу у TComboBox