Поместить иконку "туда, к часикам"... продолжение

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Поместить иконку "туда, к часикам"... продолжение

Сообщение vvs_adm » 24.02.2005 (Чт) 7:20

Замечательный вроде пример есть по ссылке
http://www.vbstreets.ru/VB/Sources/Downloads_GetFile.aspx?id=66107
Однако при некоторых обстоятельствах, в частности при перезапуске explorer.exe иконка в трее бесследно исчезает. При этом даже искусственный вызов мигания (т.е. изменения) иконки не помог... Наверное потому, что мигать нечему :). Причем ведь другие иконки (сеть, пунта и т.д.) не пропадают. Помогает тока убийство (насмерть :)) и возрождение, что совсем не есть хорошо.

Такой вот у меня вопрос : почему VB-шную иконку из примера сдувает из трея при любом удобном случае, а другие нет :?:

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.02.2005 (Чт) 13:33

Что-то непонятная тишина... У остальных этот пример не глючит, что ли?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 24.02.2005 (Чт) 13:37

у других просто винда не глючит :lol:

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.02.2005 (Чт) 14:10

Konst_One писал(а):у других просто винда не глючит :lol:

так при чем тут винда? Я сам explorer перезапускаю... и тю-тю иконки.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 24.02.2005 (Чт) 14:31

А ты не перезапускай и иконки останутся :)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.02.2005 (Чт) 14:38

Раз при перезапуске эксплорера иконка пропадает, значит есть еще тьма ситуаций, при которых она слетит. А моя прога кроме трея нигде не видна... И неприятно было, когда иконка пропала, а прога начала пищать через спикер... пока до процессов доберешься, уши завянут и вся охота использовать программу пропадет. Особенно у пользователя, который вообще не знает о существовании в виндах такой фигни, как процессы, и как их убивать.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.02.2005 (Чт) 15:41

А как простой пользователь, не знающий о процессах, убьёт эксплорер? ;-)
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.02.2005 (Чт) 15:42

Эксплорер склонен к суициду :)

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

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.02.2005 (Чт) 16:07

GSerg писал(а):Эксплорер склонен к суициду :)

Видимо, при этом что-то окнам рассылается, и нужно это что-то ловить :)

WM_ABOUT_TO_COMMIT_SUICIDE, что ли? :lol: :lol:

Как ты себе это представляешь - эксплореру надоело работать, он рассылает всем окнам прощальное сообщение, и выполняет недопустимую операцию?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.02.2005 (Чт) 16:12

Тёмыч, ты под виндами давно работал? :)


Повисло одно окно эксплорера, грохнул его - закрываются все остальные инстансы, вместе с таксбаром :)
Потом таскбар возвращается, но в нём остаются только избранные иконки :)
Например, на 98 винде пропадает даже индикатор клавиатуры. А вот иконка Lingvo остаётся, видать, чё-то знает, чего не знаем мы :)

Понятно, что нет сообщения "щас сдохну", но сообщение "воскрес!" очень может быть :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Сообщение fallen » 24.02.2005 (Чт) 16:50

решение конечно не ахти, но можно в таймере проверять наличие процесса explorer.exe если его не стало, а потом появился, то заново создавай иконку

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.02.2005 (Чт) 17:13

Не, таких решений я сам могу придумать штучки три... Если уж отслеживать крик о самоубийстве и возрождении эксплорера, то проще даже наверное просто по тайму иконку перерождать... Потому как изменение не помогает, а перерождение на ура... Но дело в том, что что б вы там не отслеживали, если у тя запущено пять программ с иконками в трее, то после возрождения ими в наперстки играть можно, типа, угадай, где какая была. А избранные иконки просто остаются на своем месте, в том же порядке... они не такие.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.02.2005 (Чт) 18:27

Буду пока, как лошарик, пересоздавать иконку... Никакой крутизны :lol:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.02.2005 (Чт) 20:29

Хм. Создай иконку 2 раза, потом убей первую и ещё мсгбоксни "Я крут, да?" ^^

Inferno
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 26.01.2005 (Ср) 1:06

Сообщение Inferno » 24.02.2005 (Чт) 21:37

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

fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Сообщение fallen » 24.02.2005 (Чт) 23:43

но если постоянно перерождать иконку, то она постоянно будет появлятся в начале.
а если их будет штук пять? вот тогда и будет игра в наперстки

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 25.02.2005 (Пт) 0:08

Inferno писал(а):После перезапуска эксплорера системтрэй не поднимается, потому и иконки не видно.

Вопрос в том и заключается, почему другие иконки видно :wink: ПунтоСвитчер к примеру в трее останется после перезапуска...

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

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 25.02.2005 (Пт) 0:41

Наверное, Пунто Свитчер отслеживает момент "возрождения" explorer.exe и снова добавляет себя в трей...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 25.02.2005 (Пт) 0:46

Amed писал(а):Наверное, Пунто Свитчер отслеживает момент "возрождения" explorer.exe и снова добавляет себя в трей...
Причем он успевает самый первый из всего, что у меня есть... А гамблер такой же лох, как и моя прога... Умирает навсегда, а в процессах висит :lol:

fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Сообщение fallen » 25.02.2005 (Пт) 2:45

таких лохов в принципе до фига. но обычно острой проблемы не стоит, так как иконка в трее играет вспомогательную роль и при повторном запуске проги открывается основное окно (пример: FlashGet)

щас тоже пишу подобную программу (в смысле без иконки в трее она просто бесполезна), но на факт возрождения иконки просто забил, так как считаю, что этим должен заниматься сам explorer :)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 25.02.2005 (Пт) 3:00

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

fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Сообщение fallen » 25.02.2005 (Пт) 11:12

ну, по-моему проверить запущен ли уже один экземпляр твоей проги не так уж и сложно, а вот постоянно пересоздавать иконку - это совсем уж некорректно.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.02.2005 (Пт) 11:19

Зачем постоянно?
Тебе уже трижды повторяют, ловишь событие, что Explorer запущен и пересоздаешь значок.
Lasciate ogni speranza, voi ch'entrate.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 25.02.2005 (Пт) 11:30

Помоему все-таки менее корректно оставлять умершую в трее программу, и потому исчезнувшую для пользователя, и ждать, когда он заметит, что иконки уже тю-тю и перезапустит программу... Да уж лучше пересоздать... А уж если придумать, как ловить смерть Эксплорера... хотя ну его нафиг... Лучше вечером гляну, что с самой иконкой происходит после смерти. Наверняка по ее состоянию и можно отследить ее "смерть".

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 25.02.2005 (Пт) 11:32

alibek писал(а):Зачем постоянно?
Тебе уже трижды повторяют, ловишь событие, что Explorer запущен и пересоздаешь значок.

Что-то мне кажется, что не только смерть эксплорера может стать причиной исчезновения...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.02.2005 (Пт) 12:07

Не надо изобретать сущностей.
Значки хостятся на трее, трей реализуется проводником. Если сдохнет проводник, то сдохнет и трей.
Если вместо проводника используется другой шелл, то он должен также реализовывать интерфейс трэя и прочее, а следовательно будет также рассылать события при своем запуске и т.п.
Lasciate ogni speranza, voi ch'entrate.

fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Сообщение fallen » 25.02.2005 (Пт) 12:51

а как эт сделать?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 24

    TopList