Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Исчезают иконки в трее в Windows 7

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

w777w

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скорее всего если вы это читаете значит у вас та же проблема.
После включения компа когда windows 7 уже загрузился в системном трее почему-то не отображались некоторые иконки, несмотря на то, что программы были запущены и их окна были видны на рабочем столе. Среди этих программ были разные программы, иногда регулятор громкости, и языковая панель…
 
Долго выяснял в чем же дело, и понял, эти программы загружаются быстрее самого експлорера (explorer.exe), и если перезагрузить этот процесс через диспетчер задач и запустить снова, то все иконки появляются.
 
Что же делать? Пробовал и чистить реестр, и удалять все что только можно из автозагрузки чтобы не грузить систему, ничего не помогало.  
 
Один раз в очередной раз в поиске решение проблемы, наткнулся на форуме на вот такой скрипт.
 
 

Код:
 
On Error Resume Next
Dim n, Path
 
WScript.Sleep (3000)                     ' Дадим время на работу (здесь 3 сек) - придержим выполнение скрипта
 
Path = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoTrayItemsDisplay"
Set Reg = CreateObject("WScript.Shell")
n = Reg.RegRead(Path)'проверяем,что у нас в реестре
 If n <> 0 Then 'если раздела нет(n = ""), то значки отображаются по умолчанию и раздел создаваться не будет    
 Reg.RegWrite Path, 0, "REG_DWORD" 'создаём раздел
 End If
Set Reg = Nothing
 
 'Перезапускаем Explorer
For Each Process In GetObject("winmgmts:").ExecQuery("select * from Win32_Process where name='explorer.exe'")
   Process.Terminate (0)
Next
 

 
Что нужно с ним сделать? Сначала создадим текстовый файл и вставим в него этот код, после это сохраним его с расширением *.vbs, я назвал его trayiconproblemsolve.vbs,  скопируйте этот файл куда нибудь на диск С, так чтобы случайно его не удалить, после чего создайте ярлык(или даже скопируйте сам файл и переместите его в папку автозагрузки в меню пуск (C:\Users\!!!(ваш пользователь)!!!\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup).
 
Вот и все теперь после включения ПК, когда процесс explorer.exe и все остальные программы загружены, наш скрипт будет выполнятся,  рестарт эксплорера  - и этим самым перерисовывать весь наш экран, тем самым и прорисовывать tray icon.

Всего записей: 2 | Зарегистр. 27-04-2003 | Отправлено: 07:45 06-12-2013
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся с этим вопросом на новом ноуте (к быстродействию ноута вопросов никаких). После скрипта у меня перерисовываются не все иконки, - одна не желает, но с перезагрузки после рега от мс - чаще рисует чем нет.
Ранее сталкивался с этой проблемой на ХР, давно было, но тогда имелось решение с патчем shell32.dll, (смутно помню в чём вопрос был, что-то со временем), которое я использовал во времена хр и эта проблема с патченым shell32 не возникала (помню, для проверки тогда в разные периоды времени, разные версии файла, несколько раз менял патченый шелл на оригинал, и в этом случае проблема имела место). Что-то аналогичное для вин7+ есть? Или может в скрипт внести фикс реестра от мс (хотя он тоже помогает не всегда)?

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 18:18 10-10-2015 | Исправлено: MOHCTP, 18:56 10-10-2015
shadow_member



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очистку кэша иконок в трее не пробовали? Можно этим (удалятся и иконки давно не используемых программ, или программ, запускавшихся когда-то только один раз):  
   
Возможно, эффект наступит после перезапуска проводника или перезагрузки машины.

Всего записей: 22354 | Зарегистр. 18-07-2006 | Отправлено: 09:53 11-10-2015 | Исправлено: shadow_member, 09:55 11-10-2015
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shadow_member
Очистка кэша помогает, но не всегда, СС, насколько я мониторил реестр, удаляет два значения в реестре, т.е. делает то-же самое что предлагает фикс от мс:
 
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify]
"PastIconsStream"=-
"IconStreams"=-
 
Но это еще на ХР не всегда помогало, и всегда не на долго) И тогда, и теперь более-менее помогает вход с паролем, но неудобно.. Пороюсь в "закромах", поищу что там в шеле патчилось.

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 17:59 12-10-2015 | Исправлено: MOHCTP, 18:05 12-10-2015
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сделал другой скрипт (если кому-то нужно выложу), более подходящий к сути проблемы, вроде всё относительно терпимо, но всё-же приходится к ней вернуться. Нашёл я старое описание и решение, да и по поведению похоже что причина неотображения иконок сейчас та-же что и раньше. Тут собрана наиболее полная информация об этом с вариантами разных решений. Из практики, лучшее - исправить shell. Если вкратце - то ранее, да походу и сейчас, вопрос в "особенности" функции Shell_NotifyIcon в Shell32.dll и мс об этом вобщем-то известно. Ранее было найдено 2 проблемных момента: таймаут был жёстко установлен в 4 сек., что слишком мало в процессе загрузки, и флаг SMTO_ABORTIFHUNG который немедленно возвращает ошибку, если принимающий процесс долго занят т.е. как бы висит, что явно неприемлемо, потому что во время запуска вся система очень занята и как-бы висит). Для хр было очень простое 100% решение проблемы: изменение ограничения времени таймаута с 4 сек. на 60 сек., и снятие этого флага, - хватало для самых тормозных систем. В 7 и 8 реализация этой части шела изменилась - пока не получается найти проблемный участок, может кто чего подскажет?
 
# - проблемная часть старого shell32.dll

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 02:28 09-12-2015 | Исправлено: MOHCTP, 02:41 09-12-2015
bomzzz



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сисяклинер неправильно чистит кеш иконок трея. после очистки еще надо перезапустить експлорер. причем именно перезапустить а не комп перезагрузить. там этого г в реестре копятся тонны, сам столкнулся пришлось программку делать, ни одной нормальной и простой не нашел. прежде чем винду в образ закатать, всегда сначала чищу трей, он засирается махом, там может десятки мб накопится дерьма при том что весь реестр 25.5 мбайт у меня
http://rghost.ru/6Dwf44zBd
после очистки кеша трея часто потом истерика начинается куда стрелочки подевались, они появляются как только появляется первый значок который надо скрыть.
можно конечно без программ прибить експлорер в диспетчере задач и снова оттуда же запустить. можно простой батник сделать для очистки.
после очистки работа трея обычно восстанавливается, если конечно нет каких серьезных повреждений в системе. проверял работу программы на 2000, xp, 2003, 7-ке. после очистки конечно хорошо весь реестр почистить и отдефрагментировать. винда будет летать как свежая.
http://rghost.ru/7knm2f5T9
версия старая, но работу ее я проверял на всех системах (вот только не помню что насчет 98 и NT), а новых нет. к тому же новые версии неFULL
перед дефрагментацией (pack\unpack) реестра (антивирус отключить!!! а лучше удалить!!!) антивирус может загрузить свои дровишки-фильтры вместе с ядром венды, и отфильтровать замену реестра, то есть винда останется вообще без реестра. но его еще можно подложить из папки C:\WINDOWS\system32\RegVac\Undo если что
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 03:32 09-12-2015 | Исправлено: bomzzz, 03:57 09-12-2015
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
К сожалению кеши, дефрагментации, баловство с сервисами и т.п. - походу полумеры: при непрорисовке иконок практически всегда возвращается ошибка ERROR_TIMEOUT.
Я переделал стартап скрипт - внёс очистку реестра и кеша иконок до перезапуска explorer, но это помогает только тем программам, которые понимают сообщение “TaskbarCreated“, таких программ большинство, конечно, но не все; у меня как раз используется одна которая не понимает, и соответственно при перезапуске оболочки её иконка гарантированно не прорисуется, а отказаться от неё пока нет возможности)

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 20:15 09-12-2015 | Исправлено: MOHCTP, 20:17 09-12-2015
bomzzz



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
бывают косячные программы, перегрузи компьютер и все. удаление кеша процедура не частая

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 03:45 10-12-2015
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz

Цитата:
бывают косячные программы,

Например Windоws - одна большая косячная программа

Цитата:
перегрузи компьютер и все

кому как, но - не вариант)

Цитата:
удаление кеша процедура не частая

тут дело не в кеше, хотя у мс работа кеша иконок - отдельная песня

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 04:35 10-12-2015
bomzzz



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если причина не в кеше то винду надо переставлять

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 08:45 10-12-2015
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz

Цитата:
если причина не в кеше то винду надо переставлять

а это чем поможет??? волшебным образом сменится ограничение таймаута? в виста+ немного по-другому этот механизм реализован чем в хр, но проблема всё та-же и корень зла всё там-же.. а насчёт кеша иконок - ну установить его ограничение в 16-30мб, против 512кб по умолчанию и можно забыть про вопросы с ним надолго)
 
Вопрос непрорисовки иконок как правило возникает на системах с неким условно большим количеством (индивидуально) программ автозапуска при использовании нмжд, например на ссд-диске её возникновение будет значительно отодвинуто в силу большого уменьшения задержек, - но это не повод покупать ссд) например у меня 21 иконка в трее и без вариантов 19 нужны - на ссд этой проблемы нету, но повторюсь - это не повод покупать ссд)

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 22:02 10-12-2015 | Исправлено: MOHCTP, 22:05 10-12-2015
GEGEMON



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
по первой ссылке после согласия очистить реестр - "непридвиденная ошибка чтения реестра".  На отбубись сработала контора Бомж и К  ))
 
Чистил и оптимизировал реестр RegOrganizer 'ом  - иконок появилось больше, но не все.
 
MOHCTP
залейте ваш скрипт, попытаю его до кучи

Всего записей: 2820 | Зарегистр. 07-02-2006 | Отправлено: 13:13 20-01-2016 | Исправлено: GEGEMON, 13:15 20-01-2016
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как я выше писал, скрипт помогает только тем программам, которые понимают сообщение “TaskbarCreated“, таких программ большинство, конечно, но не все. Работает при установленном ие.
 

Код:
 
On Error Resume Next
 
WScript.Sleep (1000)
 
Set WshShell = WScript.CreateObject("WScript.Shell")  
 
WshShell.RegDelete "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\IconStreams"
WshShell.RegDelete "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\PastIconsStream"
 
Set WshExec = WshShell.Exec ("ie4uinit.exe -ClearIconCache")
 
Set WshShell = Nothing  
 
On Error GoTo 0  
 
WScript.Sleep (3000)
 
For Each Process in GetObject("winmgmts:"). _  
        ExecQuery ("select * from Win32_Process where name='explorer.exe'")  
   Process.terminate(0)  
 
Set WshShell = CreateObject("WScript.Shell")
 
WshShell.Popup "Completed OK", 3, "Clear Icon Cache", 0
 
Set WshShell = Nothing
 
Next
 

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 20:49 09-02-2016 | Исправлено: MOHCTP, 20:50 09-02-2016
GEGEMON



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MOHCTP
сохранил на рабочем столе, спасибо!  Скрипт сказал - комплит ок! в панели задач остались только пустые места от программ - перезагрузка проводника и вот оно! все значки вызываются по стрелке, настроил какие показывать какие нет - сижу радуюсь ), посмотрим насколько долго проживет.

Всего записей: 2820 | Зарегистр. 07-02-2006 | Отправлено: 21:40 09-02-2016
Denn29



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 настроил какие показывать какие нет  

 
New Windows Tray / Notification Manager is here!

----------
Нефиг ставить то, к чему второй сервис-пак не вышел.
"Есть старое правило - чтобы не было геморроя, руки должны быть прямыми, а извилины - кривыми, но не наоборот." (С)Korzh

Всего записей: 20957 | Зарегистр. 27-12-2005 | Отправлено: 23:35 09-02-2016
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GEGEMON
так и должно быть) можно установить большее время ожидания при статре (подобрать под свою с-му), убрать сообщение, чтобы не мешало и поместить в автозагрузку.

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 06:31 10-02-2016 | Исправлено: MOHCTP, 06:32 10-02-2016
GEGEMON



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
на второй день после запуска скрипта одна из тех которая должна появится не появилась, заюзал прогу от Denn29  - по сию пору все нормально. Судя по тексту автора проги он для решения проблемы даже заюзал дебагер ) результатом чего явилась данная программа.  Вообщем кто/что помогло больше непонятно но результат положительный.

Всего записей: 2820 | Зарегистр. 07-02-2006 | Отправлено: 09:38 11-02-2016
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Denn29
Интересно, посмотрим.
 
GEGEMON
Скрипт не решает проблему "раз и навсегда", да и сама проблема гораздо глубже) он просто устраняет ряд препятствий к заданному отображению трея, поэтому неким промежуточным решением является его автозапуск.

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 20:49 11-02-2016 | Исправлено: MOHCTP, 20:52 11-02-2016
ABVBAV

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MOHCTP, я как то столкнулся с проблемой пропадающих иконок в Windows 7 и мне многие советовали не пользоваться некоторыми программами. Покопавшись, я набрел на тему о патчинге shell32.dll в Windows XP и на основе той информации пропатчил себе shell32.dll в Windows 7. По моим тестам проблема тогда пропала, хотя и 100% гарантии я дать не могу. У меня осталась патченная dll и пару скринов подсказок для себя самого. Но сейчас сходу разобраться не могу сам уже что там менял толком, так как это было два года назад. Я сейчас немного удивлен, что у кого то похожие проблемы были на Win7, так как все, кого я спрашивал об этом, доказывали мне что это у меня винда/комп тормозячий. Если кто заинтересовался, то напишите мне на скайп (логин такой же как и ник), отправлю что осталось.
 
upd: патчил я там Shell_NotifyIconW, а именно SendMessageTimeoutW. uTimeout с 7 на 60 секунд (7000 и 60000) и fuFlags c 0Bh на 09h судя по оставленным мной же записям.
 
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952%28v=vs.85%29.aspx

Всего записей: 16 | Зарегистр. 12-12-2015 | Отправлено: 21:26 12-04-2016 | Исправлено: ABVBAV, 23:45 12-04-2016
MOHCTP

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ABVBAV
 

Цитата:
По моим тестам проблема тогда пропала, хотя и 100% гарантии я дать не могу.

На ХР патченье shell32 полностью устраняло проблему, думаю что и на Win7+ результат будет такой-же)

Цитата:
как все, кого я спрашивал об этом, доказывали мне что это у меня винда/комп тормозячий

Полностью согласен, это тут совсем ни при чём.

Цитата:
Если кто заинтересовался, то напишите мне на скайп (логин такой же как и ник), отправлю что осталось.

Очень; на днях обязательно

Цитата:
upd: патчил я там Shell_NotifyIconW, а именно SendMessageTimeoutW. uTimeout с 7 на 60 секунд (7000 и 60000) и fuFlags c 0Bh на 09h судя по оставленным мной же записям.  

Я ранее начал смотреть, в Vista+ реализация этой части в сравнении с ХР изменилась, времени сильно не было глубоко вникать. Это в shell32 или в user32?

Всего записей: 510 | Зарегистр. 12-03-2003 | Отправлено: 01:15 14-04-2016 | Исправлено: MOHCTP, 01:29 14-04-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Исчезают иконки в трее в Windows 7


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru