Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Shell=Explorer [D5, Win95/98]


melifaro ©   (2002-07-30 22:25:00) 

Вопрос:
Предствьте себе. Моя прога меняет шелл. не после перезагрузки, а динамически. т.е - убила эксплорер. прописалась. загрузилась. После чего я хочу вернуть эксплорер. Пишу эксплорер на место . запускаю. выгружаюсь. НО! Все иконки в систем трее отсутствуют (хотя программы и загружены)! Как их вернуть? Может сообщение какое надо послать?


melifaro   (2002-07-31 20:21:00) [1]

Спасибо всем. приду домой - попробую :)


paul_shmakov   (2002-07-31 12:16:00) [2]

или самый простой способ - попробовать выполнить следующую процедуру после старта explorer.exe.

procedure InformEveryoneAboutExplorerRestart;
var
WM_TASKBARCREATED: UINT;
begin
WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated");
PostMessage(HWND_BROADCAST, WM_TASKBARCREATED, 0, 0);
end;


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

для того, чтобы появились все иконки, скорее всего, следует воспользоваться техникой:
http://www.delphikingdom.com/treasury/systray.htm
только та статья не совсем корректно описывает создание своего трея. посмотрите мои комментарии здесь:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1027548422&n=5


ValeraVV   (2002-07-31 11:38:00) [3]

Иконки в трее добавляются приложениями в момент их запуска, многие приложения потом по таймеру добавляют их снова. Видимо у тебя не появляются иконки приложений которые больше не делают попыток их добавить. Кстати на delphikindom есть статья о том как перехватывать попытки добавления иконок в трэй, так что перехватывай, а после запуска эксплорера сам добавляй


IlyaA   (2002-07-31 08:45:00) [4]

Не знаю что ты там делаешь, но у меня так работает.
Ты где меняешь значение Shell? И приведи кусок кода, в котором убиваешь Експлорер и оживляешь его /видимо у тебя не комп а зомби получился после ресуректа/


Наверх

Титульная страница Поиск, карта сайта Написать письмо