Faq system tray всегда ли все вышесказанное будет работать


Содержание

Как скрыть приложение в системный лоток (System Tray)

21.02.2012, 18:17

Как скрыть приложение в системный лоток (System Tray)
Подскажите как скрыть приложение в системный лоток (System Tray) ?

Как поместить иконку в System Tray?
Мне нужно поместить иконку в System Tray. Каим образом это можно сделать??

Как свернуть программу в System Tray?
Привет всем! У меня такой вопрос: как программу написанную на VB (например по нажатию кнопки).

Как свернуть прогу в system tray?
Можно ли свернуть фоксовскую прогу в область уведомлений или это невозможно?

Visual J++ . Как поставить иконку в System Tray?
Пишу программу на Visual J++, и нужно чтобы при запуске программа добавляла свою иконку в System.

21.02.2012, 18:30 2

Добавлено через 2 минуты
вот, совсем недавно было, в подробностях:
C++ Builder блокировка закрития формы

А вообще, для вопроса, не относящегося к текущей теме, правила форума советуют создавать новую тему .

21.02.2012, 18:44 [ТС] 3

там и так мои только темы)

21.02.2012, 19:06 4

Можно иконку в трее не скрывать, тогда она будет светиться постоянно.

Добавлено через 7 минут
Для управления программой из трея надо компоненту TrayIcon добавить PopupMenu , а уже из меню можно делать все, что хочется, в том числе закрывать/открывать программу.

Съезжают значки в системном трее. Трей Windows — удаляем лишнее

Не секрет, что в процессе эксплуатации Windows в системном трее (область уведомлений в правом нижнем углу экрана монитора) со временем накапливается много иконок.

Чуть ли не каждая вторая программа или утилита, которую мы устанавливаем, норовит попасть туда, чтобы потом находиться там постоянно. У новичков трей очень часто «забит под завязку» уже спустя 2-3 дня после переустановки системы.

Более опытные пользователи обычно следят за этим и стараются отключать лишние иконки, а начинающие пользователи зачастую боясь что-либо сделать неправильно или из-за отсутствия знаний, вообще не трогают значки в трее.

Однако для большинства пользователей не является секретом, что если не наводить в трее порядок, то это постепенно приводит к замедлению работы системы в целом, т.к. каждый значок в правом нижнем углу экрана говорит о том, что какая-то программа в этот момент работает в фоновом режиме, а следовательно «тянет» на себя какую-то часть ресурсов системы.

Одно дело, когда программа нужна для функционирования системы или для удобства пользователя, а другое дело, когда программа без согласия пользователя сама себя прописала в трей и потом просто запускается вместе с Windows и тормозит работу.

И более того – многие значки могут оставаться в трее даже после удаления самих программ, которые их туда поместили. Такая ситуация происходит из-за того, что информация об этих значках прописывается глубоко в реестре операционной системы и сама Windows при удалении программы не всегда удаляет из реестра информацию об этих значках.

Поэтому каждый пользователь должен обязательно следить за треем, постоянно удаляя оттуда всё лишнее и оставляя работать только те фоновые программы, которые действительно приносят пользу и важны на данном этапе работы.

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

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

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

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

Чтобы увидеть остальные значки трея, надо в этом окошке нажать на ссылку Настроить …, которая откроет окно где мы можем увидеть много других значков:

Кстати, здесь же обычно очень хорошо видны все названия тех программ и процессов, которым соответствуют значки в трее. Обратите внимание — большинство из этих программ, работают у вас В ДАННЫЙ МОМЕНТ (замедляя работу компьютера). Уверен, что если вы раньше не обращали внимания на трей, то теперь будете удивлены количеству запущенных программ, тормозящих работу вашей системы. У каждого пользователя эти программы и значки будут свои, но лишние значки почти обязательно есть у каждого!

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

К примеру, мы можем оставить для своего удобства значок уровня громкости динамиков, значок времени, значок активности сети, значок антивируса или фаерволла (и возможно ещё 2-3 значка каких-либо программ для своей ежедневной работы). А всё остальное надо убирать!

Если вы не хотите, чтобы та или иная программа (значок которой есть в трее) запускалась вместе с Windows и постоянно «висела» в фоне, то её можно (и даже нужно) отключить.

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

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


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

Отключить системные значки очень легко – внизу окна Значки области уведомлений нужно щелкнуть ссылку Включить или выключить системные значки :

После этого просто поставить переключатель возле лишнего значка в положение Выкл :

С пользовательскими значками процесс отключения чуть сложнее, но тоже довольно понятен и доступен для каждого. Как я уже сказал, нужно просто отключить автозагрузку ненужных нам программ, чтобы при запуске Windows они не запускались в фоне.

Для этого жмём на клавиатуре комбинацию клавиш Win + R (или щелкаем мышью Пуск – Выполнить ), набираем в появившемся окне команду msconfig и жмём Ok :

(следуя списку значков из трея) снимаем галочки возле тех программ, которые НЕ должны запускаться вместе с Windows и оставляем возле тех, которые хотим оставить в автозагрузке:

Если вы не знаете, для чего нужна та или иная программа, то всегда можно почитать об этой программе в сети (как говорится, Google нам в помощь).

Таким образом, мы уберем львиную долю значков из трея, т.е. после перезагрузки компьютера они просто там не появятся. Если же какой-то значок после перезагрузки всё равно вернулся в трей, то это значит, что нам надо посмотреть настройки в самой программе, отвечающий за этот значок. Скорее всего, где-то в настройках этой программы есть галочка, которая отвечает за её запуск.

Во всех программах это выглядит по-разному (возможно даже не на русском языке), но в любом случае смысл этой опции настроек будет примерно такой:

Такую галочку, отвечающую за автозапуск программы вместе с системой нужно снять и сохранить настройки программы. После этого ещё раз можно проверить окно системного автозапуска (через команду msconfig ) и после этого можно быть более-менее уверенным, что при следующем запуске Windows такая программа не запустится в фоне. Обращаю ваше внимание, что снимая галочки мы не удаляем программу из компьютера, а просто убираем её из автозапуска.

Благодаря таким действиям мы сделали большой и важный шаг – очистили автозапуск от лишних программ, а следовательно ускорили загрузку системы и скорость её работы в целом.

Теперь давайте закончим процедуру очистки трея!

Я уже говорил, что даже после удаления программ их значки могут остаться в окне Значки области уведомлений , а значит информация о них продолжает оставаться в реестре Windows.

Эту информацию, конечно же, можно удалить из реестра вручную, но для этого пользователю желательно иметь хотя бы самые элементарные навыки работы с реестром. В противном случае можно по ошибке удалить что-то лишнее и в итоге совсем вывести систему из строя.

Чтобы исключить такой сценарий мы пойдем другим путем!

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

Если на вкладке Windows в этой программе мы поставим галочку Кэш области уведомлений , то увидим вот такое предупреждение:

Жмём в этом окне кнопку Ok , подтверждая, что мы предупреждены, после чего запускаем очистку системы с помощью программы Ccleaner (см. ). Благодаря такой очистке лишние записи в соответствующих ветвях реестра Windows будут почищены (без ручного вмешательства) и останутся только нужные нам записи, значки которых мы хотели бы оставить в трее.

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

Здесь тоже всё довольно просто, если знать, что делать!

С помощью комбинации клавиш Ctrl + Shift + Esc запускаем Диспетчер задач и на вкладке Процессы находим название explorer. exe. Щелкаем по этому названию правой кнопкой мыши и в открывшемся меню выбираем пункт Завершить процесс :

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

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

После того как всё нужное сохранено, а всё лишнее закрыто жмём кнопку Завершить процесс и получаем пустой Рабочий стол , отсутствие панели задач и др.

Ну а после перезагрузки компьютера процесс explorer будет запущен автоматически, Рабочий стол и все окна будут работать в обычном режиме, а лишние значки в окне Значки области уведомлений исчезнут (и следовательно их не будет в трее).

В заключение урока хочу добавить (на всякий случай), что если вдруг после отключения в Диспетчере задач процесса explorer. exe у вас что-то пойдет не так как я описал, то вы всегда можете вручную запустить этот процесс. Для этого в окне Диспетчера задач выберите пункт меню Файл – Новая задача (Выполнить…) :

После чего в открывшемся окошке введите команду explorer и щелкните Ok :

Благодаря этой команде проводник запустится и всё должно функционировать как обычно. Скорее всего, данная процедура вам не понадобится, но лучше о ней знать!

На этом у меня всё!

Надеюсь, урок вам понравился и поможет привести в надлежащее состояние такую важную составляющую системы как область уведомлений в трее и ускорить работу системы.

Короткий ответ: потому что заблуждаются.

Длинный ответ: официальное название штуковины снизу экрана — «панель задач» (taskbar ). Она состоит из нескольких элементов — кнопка «Пуск», кнопки переключения между задачами, часы, и «область уведомлений» (taskbar notification area ).

Распространённая ошибка — называть область уведомлений «треем» (или даже «системным лотком»). Она никогда так не называлась. Если вы встретите в документации упоминание «system tray», можете доложить, что обнаружили ошибку.


Откуда взялось это неверное название?

В ранних версиях Chicago — ещё до того, как проект получил название Windows 95 — панель задач была не панелью задач, а папкой, зафиксированной снизу экрана. Она была всегда на виду, и можно было «бросать» в неё документы и ярлыки для быстрого доступа — аналогично лотку для всякой всячины, который ставят в верхний ящик письменного стола.

Оттуда и взялось название «лоток (tray ) рабочего стола». Немного сомнительное продолжение метафоры «рабочего стола на экране» — но всё ещё в пределах здравого смысла. (Вот если бы вместо обоев на стол клали скатерть. )

Значки свёрнутых приложений ложились прямо на рабочий стол — так же, как в классическом интерфейсе Windows 3.x

Лоток можно было зафиксировать у любого края экрана, а можно было «открепить» и перемещать по экрану, как обычную папку.

Потом мы отказались от этой идеи. На всегда видимую панель решили поместить кнопки переключения между задачами. (В одной из версий Chicago пользователь может выбирать, использовать панель как лоток или как панель задач; а иконки свёрнутых приложений попадают и на рабочий стол, и на панель задач.)

Идея кнопок для переключения задач тоже пришла не сразу. Вначале задумывался ряд вкладок, «листающих» запущенные приложения. Версия Chicago со «вкладками задач» не стала достоянием общественности, и даже нарисованный Рэймондом по памяти скриншот ушёл в небытие вместе с gotdotnet.com. Единственное, что осталось — чёрно-белый рисунок в книге Рэймонда.

Не все программы были готовы к тому, чтобы верх экрана занимал ряд вкладок, и от идеи пришлось отказаться. С другой стороны, код переключения «вкладок задач» был к тому времени уже готов, и проще было перерисовать вкладки, чтоб они выглядели, как кнопки — чем переписывать весь код, используя настоящие кнопки. Так кнопки переключения задач и остались замаскированными вкладками (окно класса SysTabControl32).

Диахроническая справка: функциональность лотка осталась в системе. Пользователь мог подтащить любую папку к краю экрана, чтобы зафиксировать её как новую панель, или как элемент существующей панели. Одна такая панель, «быстрый запуск», добавленная с IE4, частично повторяла назначение исходного лотка — хранение часто нужных ярлыков. Парадоксально, но в Windows 7 видим возвращение панели задач к этой исходной концепции лотка для ярлыков.

Кнопки-вкладки превратились, как и положено ряду кнопок, в панель инструментов (окно класса ToolbarWindow32). Это произошло в Windows XP, когда панель задач впервые после Windows 95 обновили; а начиная с Windows 7, это окно нового уникального класса MSTaskListWClass .

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

Так вот, когда мы решили сделать вместо лотка панель переключения задач, мы прошерстили всю нашу документацию, и заменили упоминания слова «tray» на «taskbar». Нигде в документации Windows Shell слово «tray» больше не упоминается.

Наверное, её стали называть «system tray» из-за того, что в Windows 95 была программа systray.exe , отображавшая стандартные значки уведомлений: регулятор громкости, статус PCMCIA, индикатор зарядки батареи. Если завершить процесс systray.exe , значки уведомлений пропадают. Так что пользователи решили, «Ага, systray — это системный процесс, отвечающий за область уведомлений; наверняка она называется «system tray».» Заблуждение, которое из-за этого возникло, мы уже восемь лет пытаемся искоренить…

К сожалению, ради обратной совместимости пришлось оставить Tray в названиях оконных классов: Shell_TrayWnd у панели задач, TrayNotifyWnd у области уведомлений, и TrayClockWClass у часов. Но и во всех этих случаях «tray» относится к панели задач целиком — с тех времён, пока она была лотком.

Что хуже всего, разработчики других компонентов Windows и других продуктов Microsoft втянулись во всеобщее заблуждение, и теперь название «tray» встречается в их официальной документации и в примерах кода. Некоторые даже имеют наглость заявлять, что «system tray» — это официальное название области уведомлений.

Неправда. Область уведомлений никогда не была треем: она появилась, когда трей-лоток уже не существовал. Она всегда назвалась областью уведомлений, а значки в ней всегда назывались значками уведомлений (notification icons ).

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

Приветствую всех кто читает этот блог и тех кто пришел первый раз. Меня частенько спрашивают мои читатели: «Что такое системный трей, где находится системный трей, как настроить» и многое другое. Поэтому я решил написать подробную статью, чтобы каждый раз не отвечать на один и тот же вопрос.

Если вы посмотрите в правый нижний угол экрана (там, где находятся часы) скорее всего вы обнаружите хорошо знакомые иконки ICQ, Skype, установленный антивирус и значки других программ. Эта зона и называется системным треем или по-другому область уведомлений. Второе название как нельзя лучше, раскрывает предназначение трея – уведомлять, какие программы запущены и работают в . Также вы наверное замечали, что именно в области трея появляются сообщения: Windows, антивирусов и других программ.

Трей предоставляет возможность кликом левой кнопкой мыши активировать и вывести на экран интерфейсное окно выбранной программы. Клик правой кнопкой приводит к открытию диалогового окна, в котором можно произвести быструю настройку основных функций программы или вообще ее закрыть.

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

Путем несложной настройки с помощью специальных программ, можно поместить практически любую программу в трей.

Никогда не наблюдали такую картину в Windows XP – при наведении на область системного трея раскрывается горизонтальная линия различных ярлыков, которая совсем чуть-чуть не доходит до кнопки «Пуск»? А я наблюдал и неоднократно. Может быть и удобно, но чтобы каждый раз искать из кучи приложений, программу, которая вам нужна — не очень. Зачастую там находятся не совсем нужные вещи для пользователей.

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

Илон Маск рекомендует:  Слой по центру веб-страницы

Трей в Windows 7 сделан так, что значки располагаются не на панели задач. Выше на скриншоте можете в этом убедиться. Это очень удобно.

Почему так происходит? Ответ на этот вопрос очень прост. Рассмотрим ситуацию с точки зрения пользователя. Вы поместили в системный трей свой любимый iTunes, проигрыватель видео, парочку интернет браузеров, естественно Microsoft Office и т.д. Этот список можно продолжать практически до бесконечности. Для вас это, несомненно, гораздо более удобно, чем сворачивать все окна и пользоваться ярлыками или запускать программы через «Пуск». А теперь рассмотрим эту же ситуацию с точки зрения компьютера.

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

Выделяя необходимый объем памяти программам, которые находятся в автозагрузке, Windows тем самым уменьшает ее доступный объем. В результате, компьютер начинает тормозить. Если такое происходит, не стоит сразу винить творение Microsoft и переустанавливать Windows. Как и любой другой компонент операционки системный трей очень легко настраивается.

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

А на сегодня все.

Статьи в этой же категории

Оптимизация системного трея.

Трей… «А что такое трей?» — часто спрашивают меня мои знакомые. Я им, как всегда, охотно рассказываю, объясняю, показываю. И многие из них понимают, что это для них ещё ново.


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

Мало кто знает, что эта область панели задач (полоска внизу экрана, на котором есть кнопка «Пуск») была всего лишь экспериментом в первой нормальной операционной системе Windows 95. Нормальной в смысле удобной обычному пользователю.

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

Частично эксперимент удался и, благодаря этому, мы имеем возможность пользоватся такой удобной вещью как трей. Многие функции были добавлены, некоторые стали совершенней. А число программ, способных работать в трее, увеличивается в прогресии, делая работу удобной. Но часто и это удобство «вылезает боком»…

В этом разнообразии мы и будем разбиратся, дабы сделать нашу панель задач ещё более изящней!

Не буду писать много слов, а просто перейдем к настройке. Ведь чем быстрее научимся управлять треем, тем быстрее прийдет к нам «нормальное» удобство.

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

Скрытый трей Раскрытый трей

  1. Нажмите на панели задач правой кнопкой мыши и выберите пункт «Свойства». Свойства системной панели задач
  2. Для того, что бы скрытие значков заработало, поставьте галочку на пункте 1.
  3. Далее нажмите кнопку «Настроить…» (пункт 2).

Настройки системного трея

Что ж, вот и наш трей превратился из длинного и несуразного в красивый и изящный.

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

Возможна ли работа с tray (системный трей) средствами JavaFX 8?

Я знаю как работать с Треем с помощью Java AWT в духе

Приложение у меня полностью на JavaFX. Пока гуглил решения с треем, часто натыкался на позапрошлогодние посты с размышлениями типа: «вот выйдет скоро java 8 и там будут крутые фишки по работе с треем». И чуть ли не средствами самой JavaFX.

И вот, как и ждали предки, java 8 вышла. Я полистал документацию и не нашел ничего нового по работе с треем, кроме старых добрых systemTray, TrayIcon и иже с ними.

Вопросы:
1. есть ль альтернатива AWT-шным средствам работы с треем в Java 8?
2. можно ли средствами JavaFX 8 работать с треем не прибегая к awt/swing?

  • Вопрос задан более трёх лет назад
  • 2292 просмотра

Сам спросил, сам ответил:
Перелопатив кучу англоязычной мукулатуры:

1. есть ль альтернатива AWT-шным средствам работы с треем в Java 8?
Да. Через пень-колоду-нативные методы (обращающиеся к вызовам ОС). Как, я понял, копать нужно в сторону SWT и иже с ними. Да так что проще заюзать AWT (для моей задачи)

2. можно ли средствами JavaFX 8 работать с треем не прибегая к awt/swing?
Нет. JavaFX 8 не поддерживает работу с треем. Возможно, поддержка работы с треем будет добавлена в 9й версии. А пока — сосите палец, мишки.

Итог:
Приложение оставил на JavaFX 8, а работу с треем вынес в отдельный класс, который написан с использованием AWT SystemTray.

system-tray

Возможный дубликат: написание приложения в системном трее Windows с помощью .NET Я хочу разработать приложение для Трея. Что это должно…

Я пишу небольшое приложение Трея, которое должно определить, когда пользователь последний раз взаимодействовал со своей машиной, чтобы определить, простаивают ли…

Мне было интересно, можно ли дать слушателям prioties. Я создаю systemtray на программе, которая взаимодействует с сокетами. Как только я…

Как сделать сенсорную верхнюю панель уведомления в windows phone ? Я новичок в мире C# и windows phone.Так что, возможно,…

Как написать приложение, чтобы оно жило в системном трее Linux? На самом деле, так же, как CheckGmail . Как и…

Я пытаюсь добавить значок и отобразить его в системном трее с помощью Java. Однако значок всегда либо слишком мал, либо…

Страница поиска в Windows Phone 7 (Bing search) прекрасна; использует всю область для приятного изображения. Панель системы прозрачна, но значки…


Я создаю приложение создания java, в котором я отображаю сообщение Ballon в системном трее / панели уведомлений. Он отображает сообщение…

Я переопределил событие FormClosing, чтобы свернуть его в системный лоток при нажатии. Вот мой код: private void OnFormClosing(object sender, FormClosingEventArgs…

В Java я пишу приложение системного трея, которое работает в фоновом режиме на рабочем столе пользователя. Как взаимодействовать / взаимодействовать…

Как изменить в Windows phone systemtray в портрете, чтобы показать и на пейзаж, чтобы скрыть? у меня есть что-то подобное…

На OSX мое приложение Java имеет меню D menu (используя расширение Apples для Java com.яблоко.eawt.Приложение.getApplication ().setdmenmenu), что позволяет задачи, которые…

Поэтому я создаю консольное приложение в C++ с win32 и shellapi (по разным причинам). Все прошло хорошо для большинства из…

Я искал способ получить список приложений в системном трее без проводника.exe работает, но все, что я нашел, это как получить…

Я разработал приложение уведомления с C# winform. Но теперь в этом я хочу добавить функциональность для отображения окна уведомления каждые…

Во-первых, возможно ли это и каким образом. Я видел некоторые приложения Microsoft, такие как приложение погоды Bing, где SystemTray отображается…

Я кодирую приложение MFC / c++, которое помещает несколько значков на панели задач. (Количество иконок контролируется пользователем и может достигать…

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

Я программно создал ярлык моего приложения Трея в C:ProgramDataMicrosoftWindowsStart менюпрограммызапуск. Но мое приложение Трея не запускается при входе в систему…

Визуальная тема System tray area clock документирована в MSDN, поэтому я полагаю, что Microsoft ожидает, что мы сможем ее использовать….

Что нужно сделать, чтобы ваше приложение .NET появилось в системном трее окна в виде значка? И как вы обрабатываете mousebutton…

Моя программа помещает значок в системный трей, потому что пользователь может свернуть его. Тем не менее, если приложение аварийно завершает…

Я разрабатываю приложение, которое имеет 2 части: 1) приложение WPF, которое запускается из системного трея. У него есть окно GUI,…

По моему указателю.html я добавил в приложение новый значок в системном трее (который отлично работает): tray = Ti.UI.addTray(«inactive_icon.png», function(evt)< if…

У меня есть мое собственное ToolStripприложение c# (панель задач), и я хотел бы поместить различные элементы на его системном трее…

Как навести курсор на панель задач и открыть всплывающее окно на Java ? Я могу открыть подсказку инструмента, но не…

У меня есть программа, которую можно свернуть в трей с помощью AWT, как сделать так, чтобы когда пользователь открывает его…

Процесс System грузит Windows, что делать? Загруженность жесткого диска или процессора 100%

Операционная система Windows выполняет большое количество «фоновых» задач, которые могут негативно сказываться на производительности маломощных компьютеров. Одним из процессов, который грузит оперативную память, диск или CPU, является System.exe. В «Диспетчере задач» можно увидеть, что файл System грузит Windows, а если уточнить, то нагружает «железо» компьютера. Решить данную проблему владелец компьютера может самостоятельно, если выполнит ряд простых действий.

Процесс System грузит жесткий диск и память до 100%

System – это процесс операционной системы Windows, который не является вирусом, вопреки распространенному заблуждению. Он отвечает за работу приложений в «фоновом» режиме, то есть без активного контроля со стороны пользователя. Данный процесс не скрывается, и его можно с легкостью обнаружить в «Диспетчере задач».

Главная проблема процесса System.exe, что его нельзя остановить. Таким образом, если System грузит оперативную память или жесткий диск компьютера, выключить простыми методами его не удастся. Понижение приоритета процесса с помощью стандартных средств Windows так же не приводит к успеху.

Процесс System примечателен тем, что он забирает оперативную память понемногу, и в итоге полностью ее нагружает. При этом в «Диспетчере задач» может отмечаться, что System грузит не более 200-400 Мб оперативной памяти, а она будет заполнена полностью, и компьютер начнет сильно зависать при выполнении любых задач. Подобным образом системный процесс System может грузить жесткий диск.

Чтобы файл System не грузил компьютер, расходуя непомерные ресурсы, следует отключить в операционной системе Windows некоторые «фоновые» задачи:

  1. Отключаем антивирус, поскольку проблема может крыться именно в нем. Чаще всего серьезно нагружает в фоне файл System антивирус от компании DrWeb;
  2. Отказываемся от автоматического обновления операционной системы Windows;
  3. Отключаем некоторые стандартные службы Windows.

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

Как отключить автоматическое обновление Windows 10 и системные службы

Компания Microsoft в операционной системе Windows 10, и более ранних версиях, предусмотрела возможность автоматического обновления программного обеспечения. К сожалению, данная функция на некоторых компьютерах приводит к тому, что при проверке доступных обновлений на сервисах Microsoft, файл System грузит оперативную память или жесткий диск. В таком случае единственным решением является отключение автоматического обновления Windows 10. Внимание: Если вы отключили автоматическое обновление Windows 10, рекомендуем раз в несколько месяцев (или недель) самостоятельно проверять наличие новых сборок операционной системы.

Отключить автоматическое обновление Windows 10 довольно просто, для этого необходимо:


  1. Нажать на клавиатуре сочетание клавиш Windows+R, и в открывшемся меню «Выполнить» прописать команду services.msc, а после нажать «ОК».
  2. Команда services.msc позволит открыть меню, в котором отображаются все системные службы. Листаем немалый список до тех пор, пока не обнаружим службу «Центр обновления Windows (локальный компьютер)». Жмем на обнаруженный элемент правой кнопкой мыши, и в выпавшем меню выбираем «Свойства».
  3. Откроются свойства выбранной службы, и здесь надо сперва нажать кнопку «Остановить», если она активна, а после изменить «Тип запуска» на «Отключена».

Выполнив указанные выше инструкции, в операционной системе будет отключена служба, которая занимается автоматической проверкой, в «фоновом» режиме, актуальности действующей на компьютере версии Windows.

Помимо автоматического обновления Windows 10, чтобы процесс System не грузил систему, необходимо отключить и некоторые службы. В меню «Служб», которое открывается командой services.msc, также необходимо остановить, а после отключить, следующие локальные службы:

  • KtmRm для координатора распределенных транзакций
  • Snupchat
  • Superfetch
  • Агент политики IPsec
  • Клиент отслеживания изменившихся связей
  • Служба политики диагностики

Обратите внимание: в зависимости от версии операционной системы Windows, а также количества установленных драйверов и кодеков, некоторые службы, перечисленные выше, могут отсутствовать.

После отключения антивируса DrWeb, автоматического обновления Windows 10 и некоторых служб, следует перезагрузить компьютер. За счет отключения ряда задач, которые отнимали много ресурсов компьютера, должна в целом повыситься производительность работы системы, а в «Диспетчере задач» исчезнет проблема с загрузкой жесткого диска и оперативной памяти.

Является ли приложение со значком «системный трей» OK для постоянно работает планировщик, или я должен создать службу Windows?

Требование — У меня есть периодическая задача я хочу работать в среде Windows, для моего приложения. Он будет иметь простой интерфейс, который позволяет некоторую базовую конфигурацию (например, URL-адрес и как часто запускать его). Я хочу, чтобы запустить каждые Х часов (настраивается), когда машина работает.

Вопрос — Должен ли я просто создать приложение с присутствием в системном трее для этого? Или я должен создать службу, которая имеет отдельный пользовательский интерфейс, который перехватывает в него.

КСТАТИ — Я новичок в C # развивающуюся с помощью Visual Studio Express, имейте в виду. Кроме того, если вы могли бы дать краткий обзор дизайна, что вы рекомендуете, что было бы здорово для кого-то новым для этого (например, если вы предлагаете услугу, значит ли это, что вам действительно нужно одно приложение для службы, а также другое приложение, которое имеет пользовательский интерфейс, который делает конфигурацию для службы?)

Если он должен работать, когда ни один пользователь не вошел в систему, вам нужно обслуживание. Если это пользовательское приложение, которое не нужно работать, когда все пользователи вышли, то приложение в системном трее будет ОК.

Если вы ищете что-то простое, рассмотреть вопрос об использовании окна планировщика для планирования заданий, прокладки для выполнения заданий после того, как планировщик запускает его и утилиту конфигурации, которая позволяет настроить. Но я бы рекомендовал, чтобы вы оценили, насколько гибкими и как надежность работы должны быть. Если это нормально, если задания не выполняются последовательно, то пользовательское приложение в области уведомлений будет достаточно. Но если работа имеет решающее значение для функции бизнеса или какой-либо другой операции, я бы с планировщиком или услугой. Если вы делаете услугу, вы бы утилиту конфигурации и службы, которые взаимодействуют бы с помощью некоторых средств. Вы могли бы иметь конфигурации утилита записи в файл (возможно, конфигурационный файл XML) для обновления конфигурации, а затем просто перезапустить службу, чтобы обновить конфигурацию.

Я разработал такую ​​заявку в прошлом году. Простое приложение Windows Forms, который имеет только иконку в трее. Пользователь может настроить приложение через контекстное меню (отображается, когда пользователь щелкает правой кнопкой мыши на иконке в трее). Я использовал таймер, который запускает Прошедшее событие .

Если это приложение будет только делать некоторые задачи на своевременной основе затем только с приложением Windows Forms со значком в трее. Но если будет несколько возможного приложения, которое может послать вход и вызвать некоторую активность, то вы должны рассмотреть вопрос о переходе на общую функциональности службы окон. Вы должны также рассмотреть возможность использования службы Windows, если приложение будет работать на машине с Terminal услуг (несколько пользователей -> несколько экземпляров вашего приложения).

Я бы не стал использовать запланированную задачу! Это менее удобный .

Я хотел бы создать основную обработку в качестве службы Windows, в противном случае, если вы перезагрузите машину и вы не войти в систему, вы не будете иметь процесс начал сидеть в лотке (и, следовательно, ваш процесс не побежит). Alternativly создать фиктивное консольное приложение или Šilar и запустить что через планировщик окна. Также с сервисом окон, если он выходит из строя можно настроить для автоматического перезапуска, который вы не можете (легко) делать с окнами applicaition сидит в лотке.

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

Если вам это нужно , чтобы запустить когда — либо X часов машина работает, даже если никто не вошел в систему , то либо запланированное задание или услуга может быть правильным.

Что сервис будет делать в «мертвое время» между загрузкой? Если ответ нет ничего, то запланированная задача почти наверняка прав. Вы хотели бы создать консольное приложение для запуска в качестве запланированной задачи.

Это помогло бы, если бы мы знали больше о том, что, если таковые имеются, интерфейс пользователя в настоящее время используется.

Это зависит от размера приложения. Если это довольно небольшой оставить ее в лоток, если вы Allready did’t написал это решение

Настройка системного трея и панели задач Windows 7

Панель задач в операционной системе Windows создана специально для запуска часто используемых программ. Системный трей предназначен для отображения значков запущенных программ.

Объединяет их то, что они постоянно находятся под рукой пользователя и поэтому должны быть максимально удобно настроены. Ниже мы дадим вам несколько полезных советов, следуя которым вы сможете наилучшим образом настроить системный трей и панель задач своей операционной системы.

1. В популярной до сих пор операционной системе Windows ХР была реализована панель быстрого запуска. Через нее можно было быстро переключаться между открытыми окнами, сворачивать их и быстро запускать браузер Internet Explorer.

В последней выпущенной ОС Windows 7 эта панель не доступна пользователю по умолчанию. Если вы привыкли к ней, то панель быстрого запуска можно легко восстановить. Для этого нужно щелкнуть правой кнопкой мыши в свободном месте панели задач и выбрать, в появившемся контекстном меню, пункт «Панели», а далее выбрать «Создать панель инструментов».

Откроется окно проводника. Через него нужно будет перейти на диск «С» в папку «Пользователи». В этой папке необходимо выбрать очередной каталог, но уже с именем текущего пользователя и войти в скрытую папку «AppData». Чтобы сделать её и все остальные скрытые папки видимыми нажмите клавишу «Alt» в любом окне проводника Windows 7.

Илон Маск рекомендует:  Как создать дизайн сайта, делаем дизайн сайта правильно!

В появившейся строке меню откройте «сервис»-> «параметры папок»-> «вид», где вам останется лишь выбрать соответствующую опцию (впоследствии всё можно будет вернуть к исходному состоянию).

После этого, можно немного передохнуть и пройтись по папкам «Roaming» «Microsoft», «Internet Explorer». В конце, кликнув один раз мышью, выберите папку «Quick Launch», после чего нажмите кнопку «Выбор папки».

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

2. Бесплатная утилита TaskbarTweaker может помочь пользователю с индивидуальной настройкой панели задач. Для этого ее не надо устанавливать на компьютер, так как она может работать в портативном режиме, т.е. без установки (при первом запуске нужно будет отметить соответствующий пункт). После запуска можно сразу приступить к настройке.


В появившемся меню «Элементы панели задач» можно настроить действия, которые будут выполняться при нажатии на элемент панели задач правой кнопкой мыши. Помимо этого можно указать действия, которые будут выполняться при наведении мыши на окно программы.

В отдельном меню «Группировка окон» пользователь может выбрать различные параметры группировки окон.

Для включения прокрутки окон при помощи колеса мышки, в специальном разделе «Разные настройки панели задач» нужно проставить галочки напротив пунктов «Переключение между окнами» и «Пропускать свернутые окна».

После этого можно задать действия, выполняемые при двойном щелчке мыши на панели задач. Это делается в специальном меню «Двойное нажатие на панели задач».

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

По умолчанию, там находится только десять файлов, однако при желании представленный список можно увеличить или наоборот уменьшить. Для этого нажмите на кнопку «Пуск» правой кнопкой мыши и в появившемся окне выберите пункт «Свойства». В новом окне нажмите на кнопку «Настроить». Появится другое окно, в котором есть пункт «Отображать в списке перехода недавно использовавшиеся элементы в количестве». Напротив него можно выбрать необходимое количество отображаемых документов. После завершения процедуры выбора, необходимо нажать на кнопку «ОК».

4. Операционная система не дает размещать на панели задач ссылки на файлы и папки, не являющиеся программами.

Существует способ обойти это искусственное ограничение с помощью небольшой хитрости.

Откройте любой текстовый редактор, например, стандартный блокнот, включённый в состав Windows. Не пишите ничего на появившемся листе, а сразу же откройте меню «Файл»-> «Сохранить как». Выберите тип «все файлы», а в поле с названием укажите любое произвольное имя, но при этом обязательно добавьте к нему через точку расширение «exe».

Полученный файл перенесите на панель задач и откройте его свойства.

В поле «объект» вы теперь можете указать путь к любому файлу или папке на вашем ПК (прежний путь при этом можно удалить, ровно, как и сам файл, который остался на рабочем столе). К примеру, вы можете создать такую ссылку даже на один из локальных дисков. Это удобно, так как не придётся каждый раз обращаться к окну «Компьютер».

Все готово! Теперь при нажатии на этот ярлык будет запускаться любой файл или папка, которую вы выбрали.

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

5. Небольшая утилита Hide It поможет вам легко разобраться с открытыми окнами приложений. Окна можно будет сворачивать в системный трей одним нажатием кнопки мыши. Утилита не требует установки на компьютер, и вы можете опробовать ее в действии, распаковав из архива и запустив файл «HideIt.exe».

После запуска, в системном трее появится значок программы в форме стрелочки. Теперь можно навести курсор мыши на кнопку «Свернуть» у любой отрытой программы и правой кнопкой мыши выбрать пункт «Hide It», после чего программа свернется в системный трей. Для восстановления нужно просто два раза нажать по иконке программы в системном трее.

6. Если вы хотите произвести настройку значков, расположенных в системном трее, то нажмите по кнопке «Пуск» правой кнопкой мыши и войдите в пункт «Свойства».

Затем выберите пункт «Настроить». В открывшемся окне выберите значок нужной программы и настройте его поведение в системном трее.

Если вы хотите настроить системные значки, то можете перейти по ссылке «Включить или выключить системные значки». Здесь можно выбрать нужный значок из списка и либо включить, либо соответственно отключить его отображение в трее. Если вы сделали что-то не так как надо и не знаете, как это изменить, просто нажмите на пункт «восстановить поведение значка по умолчанию». Все внесенные изменения сразу исчезнут.

Если есть желание, то в системном трее можно отображать все значки программ, установив флажок напротив пункта «Всегда отображать все значки и уведомления на панели задач». Для завершения этого действия потребуется нажать на кнопку «ОК».

Faq system tray всегда ли все вышесказанное будет работать ?

Как попасть в System Tray? Приходит время, и начинающему Windows-программисту наскучивает открывать и закрывать окно с лозунгом «Hello, World». Его взгляд рассеянно блуждает по «рабочему столу» (не по тому, на котором стоит монитор, а по тому, что создан бессмертной Microsoft) и останавливается на правом нижнем его углу. Та часть панели задач, что привлекла его внимание, именуется «system tray» и содержит значки, которые магическим образом взаимодействуют с программами, работа которых «на первый взгляд как будто не видна» (эти программы нельзя «вызвать» с помощью комбинации [Alt]+[Tab]).

Вышеупомянутого программиста начинает мучить вопрос: а чем его творение хуже Clock, dr.Web, AVP и прочих (посмотрите на свой system tray и продолжите список). Почему бы не растолкать корифеев и не занять свое место под солнцем (точнее, под курсором «мыши») в этом уютном уголке.
В этой статье приводятся сведения, достаточные для того, чтобы любой программист, знакомый с принципами разработки приложений под Windows 9x, мог разместить значок в system tray и управлять им.
Как уже было сказано, system tray — это часть панели задач, которая включает в себя еще меню кнопки «Пуск», кнопки выбора приложения и всплывающее меню. Официальное название system tray — область состояния (status area). Сюда приложения могут размещать значки, которые информируют пользователя об их состоянии или о возникновении событий.
Размещая в этой области значок принтера, приложение сообщает о начале процесса печати. Если курсор «мыши» замрет над каким-нибудь значком, всплывает информационная строка: «паук» dr.Web сообщает о количестве проверенных/инфицированных файлов, «часы» показывают дату, «системный монитор» — количество свободных ресурсов.
Кроме того, значки system tray позволяют организовать обратную связь с пользователем для приложений, окна которых по ряду причин нежелательно размещать на «рабочем столе». Например, чтобы вызвать окно настройки громкости, нужно дважды щелкнуть «мышью» по значку «громкоговорителя». В этом смысле значки выполняют функцию окна приложения: информируют пользователя и принимают сообщения от «мыши».
Для работы со значками в области состояния предназначена всего одна функция WIN32 API — Shell_NotifyIcon. Она описана следующим образом:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage,
PNOTIFYICONDATA pnid);

При вызове параметр dwMessage должен содержать одно из следующих значений:
— NIM_ADD — добавить значок в область состояния,
— NIM_DEL — удалить значок из области состояния,
— NIM_MODIFY — изменить значок в области состояния.
Параметр pnid указывает на структуру типа NOTIFYICONDATA, значения полей которой зависят от параметра dwMessage.
Функция Shell_NotifyIcon возвращает ненулевое значение, если операция прошла успешно, и ноль в случае ошибки.
Рассмотрим подробнее структуру NOTIFYICONDATA. Она описана следующим образом:
typedef struct _NOTIFYICONDATA <
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
char szTip[64];
> NOTIFYICONDATA, *PNOTIFYICONDATA;
и ее поля имеют следующий смысл:
— cbSize — размер структуры NOTIFYICONDATA,
— hWnd — манипулятор окна, которое будет получать сообщения от значка в области состояния;
— uID — идентификатор значка. Это значение передается приложению в качестве первого параметра (WPARAM) сообщения от значка;
— uFlags — набор флагов, которые определяют, какие поля структуры заданы корректно. Могут использоваться следующие значения или их комбинации с помощью логического «ИЛИ»: NIF_ICON — поле hIcon корректно, NIF_MESSAGE — поле uCallbackMessage корректно, NIF_TIP — поле szTip корректно;
— uCallbackMessage — идентификатор сообщения, посылаемого окну hWnd при возникновении события «мыши» над значком в области состояния. Можно использовать значения WM_USER+N, где N — неотрицательное число;
— hIcon — манипулятор иконки, которую нужно разместить (изменить, удалить) в system tray;
— szTip — ASCIIZ-строка, которая будет использоваться в качестве «всплывающего» текста, когда указатель «мыши» остановится над значком. Если текст отсутствует, первый байт строки должен быть нулевым.
Перед вызовом функции Shell_NotifyIcon нужно подготовить экземпляр структуры NOTIFYICONDATA. Поля cbSize, hWnd и uID нужно заполнять всегда, остальные — по мере необходимости. В соответствии с заполнением полей uCallbackMessage, hIcon и szTip формируется поле флагов uFlags.
Чтобы добавить значок в область состояния, нужно вызвать функцию Shell_NotifyIcon, передав ей в качестве параметра dwMessage значение NIM_ADD, а в качестве pnid — указатель на инициализированный экземпляр структуры NOTIFYICONDATA. Если все выполнено правильно, функция вернет ненулевое значение, а в system tray появится новая иконка. Если планируется, что окно должно принимать сообщения от значка, следует обратить внимание, чтобы поле hWnd перед вызовом Shell_NotifyIcon было инициализировано значением манипулятора реально существующего окна. В противном случае значок будет исчезать из области состояния, как только над ним остановится указатель «мыши». Если было инициализировано поле uCallbackMessage, система будет посылать окну hWnd сообщения о событиях «мыши» над значком. При этом параметр сообщения WPARAM будет содержать идентификатор значка uID, а параметр LPARAM — тип сообщения.
Приложение, разместившее значок в system tray, может в любой момент изменить иконку или всплывающую подсказку. Для этого нужно внести изменения в соответствующие поля структуры NOTIFYICONDATA, поправить значение uFlags (значения cbSize, hWnd и uId изменяться не должны!) и вызвать функцию Shell_NotifyIcon со значением NIM_MODIFY в качестве параметра dwMessage.
Для удаления значка из system tray достаточно правильно заполнить поля cbSize, hWnd, u >Приведенные сведения позволяют программисту жонглировать значками в system tray как только он пожелает. Дополнительную информацию и примеры использования функции Shell_NotifyIcon и обработки сообщений «мыши» можно найти в «Win32 Programmer’s Reference», что поставляется в виде help-файла «Win32 online help» в составе Borland C++ 5.0.
Но если Вы программируете не на Ассемблере, а, к примеру, на C++, можно построить элегантный класс, который позволит еще больше упростить процесс работы со значками в области состояния.
Итак, за работу. Назовем наш класс SystemTrayIcon. Он должен содержать сведения о значке в области состояния и методы работы с ним. То есть он должен знать, как создать, модифицировать и удалить значок. Кроме того, в нем должна быть информация о том, размещен ли значок в system tray или еще нет.
Вся информация о значке содержится в структуре NOTIFYICONDATA, поэтому ее экземпляр можно поместить в класс, а чтобы защитить его от несанкционированного использования — ограничим доступ модификатором private. Туда же поместим логическую переменную fIsPlaced, которая будет принимать значение TRUE, если иконка размещена в system tray, и FALSE — в противном случае. Наш класс будет содержать следующие методы: конструктор (ну как же без него?), FAdd (размещает значок в system tray), FChangeIcon (изменяет иконку), FChangeTip (изменяет всплывающую подсказку), FDelete (удаляет значок из system tray) и деструктор. Запишем то, о чем сказано, в терминах C++:

Что же у нас получилось? Для размещения значка в system tray нужно прежде всего создать объект класса SystemTrayIcon. Конструктор инициализирует класс и присваивает члену fIsPlaced значение FALSE, что соответствует отсутствию значка в system tray. Для добавления значка в область состояния нужно воспользоваться методом FAdd, передав ему в качестве параметров все необходимые сведения о значке (эти параметры соответствуют аналогичным параметрам функции Shell_NotifyIcon, поэтому здесь не расписываются). Этот метод, как и методы FChangeIcon, FChangeTip, FDelete, возвращает TRUE в случае удачи и FALSE — в противном случае. Реализация методов выглядит следующим образом:

Чтобы изменить иконку, просто обращаемся к методу FChangeIcon с манипулятором новой иконки в качестве параметра. Все необходимые значения в классе уже сохранены. Аналогичным образом с помощью метода FChangeTip изменяется всплывающая подсказка. Удалить значок из system tray можно с помощью метода FDelete или просто уничтожив объект класса SystemTrayIcon (тогда деструктор сделает это автоматически).
Преимущества объектно-ориентированного подхода налицо. Ничто не мешает создать несколько объектов класса SystemTrayIcon и разместить в области состояния несколько значков. При дальнейшей работе с объектами нет необходимости задумываться над тем, какие поля инициализировать для изменения параметров значка или его удаления, нужно просто воспользоваться готовым методом. Удаление значков из system tray может выполняться автоматически при уничтожении соответствующего объекта.
Теперь можно подвести итоги. В статье рассмотрен способ размещения, удаления и работы со значками в system tray. Приведено описание функции Shell_NotifyIcon WIN32 API и объяснены ее параметры. В качестве примера построен С++ класс SystemTrayIcon, позволяющий упростить операции со значками в области состояния, и приведены реализации его методов. Надеюсь, что эта статья поможет кому-нибудь реализовать свои идеи в профессиональном воплощении и вдохновит на новые подвиги в области программирования под Windows. А ведь начиналось все с «Hello, World»!

Игорь Орещенков

Съезжают значки в системном трее. Трей Windows — удаляем лишнее

Не секрет, что в процессе эксплуатации Windows в системном трее (область уведомлений в правом нижнем углу экрана монитора) со временем накапливается много иконок.

Чуть ли не каждая вторая программа или утилита, которую мы устанавливаем, норовит попасть туда, чтобы потом находиться там постоянно. У новичков трей очень часто «забит под завязку» уже спустя 2-3 дня после переустановки системы.

Более опытные пользователи обычно следят за этим и стараются отключать лишние иконки, а начинающие пользователи зачастую боясь что-либо сделать неправильно или из-за отсутствия знаний, вообще не трогают значки в трее.

Однако для большинства пользователей не является секретом, что если не наводить в трее порядок, то это постепенно приводит к замедлению работы системы в целом, т.к. каждый значок в правом нижнем углу экрана говорит о том, что какая-то программа в этот момент работает в фоновом режиме, а следовательно «тянет» на себя какую-то часть ресурсов системы.

Одно дело, когда программа нужна для функционирования системы или для удобства пользователя, а другое дело, когда программа без согласия пользователя сама себя прописала в трей и потом просто запускается вместе с Windows и тормозит работу.

И более того – многие значки могут оставаться в трее даже после удаления самих программ, которые их туда поместили. Такая ситуация происходит из-за того, что информация об этих значках прописывается глубоко в реестре операционной системы и сама Windows при удалении программы не всегда удаляет из реестра информацию об этих значках.

Поэтому каждый пользователь должен обязательно следить за треем, постоянно удаляя оттуда всё лишнее и оставляя работать только те фоновые программы, которые действительно приносят пользу и важны на данном этапе работы.

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


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

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

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

Чтобы увидеть остальные значки трея, надо в этом окошке нажать на ссылку Настроить …, которая откроет окно где мы можем увидеть много других значков:

Кстати, здесь же обычно очень хорошо видны все названия тех программ и процессов, которым соответствуют значки в трее. Обратите внимание — большинство из этих программ, работают у вас В ДАННЫЙ МОМЕНТ (замедляя работу компьютера). Уверен, что если вы раньше не обращали внимания на трей, то теперь будете удивлены количеству запущенных программ, тормозящих работу вашей системы. У каждого пользователя эти программы и значки будут свои, но лишние значки почти обязательно есть у каждого!

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

К примеру, мы можем оставить для своего удобства значок уровня громкости динамиков, значок времени, значок активности сети, значок антивируса или фаерволла (и возможно ещё 2-3 значка каких-либо программ для своей ежедневной работы). А всё остальное надо убирать!

Если вы не хотите, чтобы та или иная программа (значок которой есть в трее) запускалась вместе с Windows и постоянно «висела» в фоне, то её можно (и даже нужно) отключить.

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

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

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

Отключить системные значки очень легко – внизу окна Значки области уведомлений нужно щелкнуть ссылку Включить или выключить системные значки :

После этого просто поставить переключатель возле лишнего значка в положение Выкл :

С пользовательскими значками процесс отключения чуть сложнее, но тоже довольно понятен и доступен для каждого. Как я уже сказал, нужно просто отключить автозагрузку ненужных нам программ, чтобы при запуске Windows они не запускались в фоне.

Для этого жмём на клавиатуре комбинацию клавиш Win + R (или щелкаем мышью Пуск – Выполнить ), набираем в появившемся окне команду msconfig и жмём Ok :

(следуя списку значков из трея) снимаем галочки возле тех программ, которые НЕ должны запускаться вместе с Windows и оставляем возле тех, которые хотим оставить в автозагрузке:

Если вы не знаете, для чего нужна та или иная программа, то всегда можно почитать об этой программе в сети (как говорится, Google нам в помощь).

Илон Маск рекомендует:  Как в Word удалить все гиперссылки

Таким образом, мы уберем львиную долю значков из трея, т.е. после перезагрузки компьютера они просто там не появятся. Если же какой-то значок после перезагрузки всё равно вернулся в трей, то это значит, что нам надо посмотреть настройки в самой программе, отвечающий за этот значок. Скорее всего, где-то в настройках этой программы есть галочка, которая отвечает за её запуск.

Во всех программах это выглядит по-разному (возможно даже не на русском языке), но в любом случае смысл этой опции настроек будет примерно такой:

Такую галочку, отвечающую за автозапуск программы вместе с системой нужно снять и сохранить настройки программы. После этого ещё раз можно проверить окно системного автозапуска (через команду msconfig ) и после этого можно быть более-менее уверенным, что при следующем запуске Windows такая программа не запустится в фоне. Обращаю ваше внимание, что снимая галочки мы не удаляем программу из компьютера, а просто убираем её из автозапуска.

Благодаря таким действиям мы сделали большой и важный шаг – очистили автозапуск от лишних программ, а следовательно ускорили загрузку системы и скорость её работы в целом.

Теперь давайте закончим процедуру очистки трея!

Я уже говорил, что даже после удаления программ их значки могут остаться в окне Значки области уведомлений , а значит информация о них продолжает оставаться в реестре Windows.

Эту информацию, конечно же, можно удалить из реестра вручную, но для этого пользователю желательно иметь хотя бы самые элементарные навыки работы с реестром. В противном случае можно по ошибке удалить что-то лишнее и в итоге совсем вывести систему из строя.

Чтобы исключить такой сценарий мы пойдем другим путем!

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

Если на вкладке Windows в этой программе мы поставим галочку Кэш области уведомлений , то увидим вот такое предупреждение:

Жмём в этом окне кнопку Ok , подтверждая, что мы предупреждены, после чего запускаем очистку системы с помощью программы Ccleaner (см. ). Благодаря такой очистке лишние записи в соответствующих ветвях реестра Windows будут почищены (без ручного вмешательства) и останутся только нужные нам записи, значки которых мы хотели бы оставить в трее.

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

Здесь тоже всё довольно просто, если знать, что делать!

С помощью комбинации клавиш Ctrl + Shift + Esc запускаем Диспетчер задач и на вкладке Процессы находим название explorer. exe. Щелкаем по этому названию правой кнопкой мыши и в открывшемся меню выбираем пункт Завершить процесс :

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

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


После того как всё нужное сохранено, а всё лишнее закрыто жмём кнопку Завершить процесс и получаем пустой Рабочий стол , отсутствие панели задач и др.

Ну а после перезагрузки компьютера процесс explorer будет запущен автоматически, Рабочий стол и все окна будут работать в обычном режиме, а лишние значки в окне Значки области уведомлений исчезнут (и следовательно их не будет в трее).

В заключение урока хочу добавить (на всякий случай), что если вдруг после отключения в Диспетчере задач процесса explorer. exe у вас что-то пойдет не так как я описал, то вы всегда можете вручную запустить этот процесс. Для этого в окне Диспетчера задач выберите пункт меню Файл – Новая задача (Выполнить…) :

После чего в открывшемся окошке введите команду explorer и щелкните Ok :

Благодаря этой команде проводник запустится и всё должно функционировать как обычно. Скорее всего, данная процедура вам не понадобится, но лучше о ней знать!

На этом у меня всё!

Надеюсь, урок вам понравился и поможет привести в надлежащее состояние такую важную составляющую системы как область уведомлений в трее и ускорить работу системы.

Короткий ответ: потому что заблуждаются.

Длинный ответ: официальное название штуковины снизу экрана — «панель задач» (taskbar ). Она состоит из нескольких элементов — кнопка «Пуск», кнопки переключения между задачами, часы, и «область уведомлений» (taskbar notification area ).

Распространённая ошибка — называть область уведомлений «треем» (или даже «системным лотком»). Она никогда так не называлась. Если вы встретите в документации упоминание «system tray», можете доложить, что обнаружили ошибку.

Откуда взялось это неверное название?

В ранних версиях Chicago — ещё до того, как проект получил название Windows 95 — панель задач была не панелью задач, а папкой, зафиксированной снизу экрана. Она была всегда на виду, и можно было «бросать» в неё документы и ярлыки для быстрого доступа — аналогично лотку для всякой всячины, который ставят в верхний ящик письменного стола.

Оттуда и взялось название «лоток (tray ) рабочего стола». Немного сомнительное продолжение метафоры «рабочего стола на экране» — но всё ещё в пределах здравого смысла. (Вот если бы вместо обоев на стол клали скатерть. )

Значки свёрнутых приложений ложились прямо на рабочий стол — так же, как в классическом интерфейсе Windows 3.x

Лоток можно было зафиксировать у любого края экрана, а можно было «открепить» и перемещать по экрану, как обычную папку.

Потом мы отказались от этой идеи. На всегда видимую панель решили поместить кнопки переключения между задачами. (В одной из версий Chicago пользователь может выбирать, использовать панель как лоток или как панель задач; а иконки свёрнутых приложений попадают и на рабочий стол, и на панель задач.)

Идея кнопок для переключения задач тоже пришла не сразу. Вначале задумывался ряд вкладок, «листающих» запущенные приложения. Версия Chicago со «вкладками задач» не стала достоянием общественности, и даже нарисованный Рэймондом по памяти скриншот ушёл в небытие вместе с gotdotnet.com. Единственное, что осталось — чёрно-белый рисунок в книге Рэймонда.

Не все программы были готовы к тому, чтобы верх экрана занимал ряд вкладок, и от идеи пришлось отказаться. С другой стороны, код переключения «вкладок задач» был к тому времени уже готов, и проще было перерисовать вкладки, чтоб они выглядели, как кнопки — чем переписывать весь код, используя настоящие кнопки. Так кнопки переключения задач и остались замаскированными вкладками (окно класса SysTabControl32).

Диахроническая справка: функциональность лотка осталась в системе. Пользователь мог подтащить любую папку к краю экрана, чтобы зафиксировать её как новую панель, или как элемент существующей панели. Одна такая панель, «быстрый запуск», добавленная с IE4, частично повторяла назначение исходного лотка — хранение часто нужных ярлыков. Парадоксально, но в Windows 7 видим возвращение панели задач к этой исходной концепции лотка для ярлыков.

Кнопки-вкладки превратились, как и положено ряду кнопок, в панель инструментов (окно класса ToolbarWindow32). Это произошло в Windows XP, когда панель задач впервые после Windows 95 обновили; а начиная с Windows 7, это окно нового уникального класса MSTaskListWClass .

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

Так вот, когда мы решили сделать вместо лотка панель переключения задач, мы прошерстили всю нашу документацию, и заменили упоминания слова «tray» на «taskbar». Нигде в документации Windows Shell слово «tray» больше не упоминается.

Наверное, её стали называть «system tray» из-за того, что в Windows 95 была программа systray.exe , отображавшая стандартные значки уведомлений: регулятор громкости, статус PCMCIA, индикатор зарядки батареи. Если завершить процесс systray.exe , значки уведомлений пропадают. Так что пользователи решили, «Ага, systray — это системный процесс, отвечающий за область уведомлений; наверняка она называется «system tray».» Заблуждение, которое из-за этого возникло, мы уже восемь лет пытаемся искоренить…

К сожалению, ради обратной совместимости пришлось оставить Tray в названиях оконных классов: Shell_TrayWnd у панели задач, TrayNotifyWnd у области уведомлений, и TrayClockWClass у часов. Но и во всех этих случаях «tray» относится к панели задач целиком — с тех времён, пока она была лотком.

Что хуже всего, разработчики других компонентов Windows и других продуктов Microsoft втянулись во всеобщее заблуждение, и теперь название «tray» встречается в их официальной документации и в примерах кода. Некоторые даже имеют наглость заявлять, что «system tray» — это официальное название области уведомлений.

Неправда. Область уведомлений никогда не была треем: она появилась, когда трей-лоток уже не существовал. Она всегда назвалась областью уведомлений, а значки в ней всегда назывались значками уведомлений (notification icons ).

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

Приветствую всех кто читает этот блог и тех кто пришел первый раз. Меня частенько спрашивают мои читатели: «Что такое системный трей, где находится системный трей, как настроить» и многое другое. Поэтому я решил написать подробную статью, чтобы каждый раз не отвечать на один и тот же вопрос.

Если вы посмотрите в правый нижний угол экрана (там, где находятся часы) скорее всего вы обнаружите хорошо знакомые иконки ICQ, Skype, установленный антивирус и значки других программ. Эта зона и называется системным треем или по-другому область уведомлений. Второе название как нельзя лучше, раскрывает предназначение трея – уведомлять, какие программы запущены и работают в . Также вы наверное замечали, что именно в области трея появляются сообщения: Windows, антивирусов и других программ.

Трей предоставляет возможность кликом левой кнопкой мыши активировать и вывести на экран интерфейсное окно выбранной программы. Клик правой кнопкой приводит к открытию диалогового окна, в котором можно произвести быструю настройку основных функций программы или вообще ее закрыть.

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

Путем несложной настройки с помощью специальных программ, можно поместить практически любую программу в трей.

Никогда не наблюдали такую картину в Windows XP – при наведении на область системного трея раскрывается горизонтальная линия различных ярлыков, которая совсем чуть-чуть не доходит до кнопки «Пуск»? А я наблюдал и неоднократно. Может быть и удобно, но чтобы каждый раз искать из кучи приложений, программу, которая вам нужна — не очень. Зачастую там находятся не совсем нужные вещи для пользователей.


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

Трей в Windows 7 сделан так, что значки располагаются не на панели задач. Выше на скриншоте можете в этом убедиться. Это очень удобно.

Почему так происходит? Ответ на этот вопрос очень прост. Рассмотрим ситуацию с точки зрения пользователя. Вы поместили в системный трей свой любимый iTunes, проигрыватель видео, парочку интернет браузеров, естественно Microsoft Office и т.д. Этот список можно продолжать практически до бесконечности. Для вас это, несомненно, гораздо более удобно, чем сворачивать все окна и пользоваться ярлыками или запускать программы через «Пуск». А теперь рассмотрим эту же ситуацию с точки зрения компьютера.

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

Выделяя необходимый объем памяти программам, которые находятся в автозагрузке, Windows тем самым уменьшает ее доступный объем. В результате, компьютер начинает тормозить. Если такое происходит, не стоит сразу винить творение Microsoft и переустанавливать Windows. Как и любой другой компонент операционки системный трей очень легко настраивается.

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

А на сегодня все.

Статьи в этой же категории

Оптимизация системного трея.

Трей… «А что такое трей?» — часто спрашивают меня мои знакомые. Я им, как всегда, охотно рассказываю, объясняю, показываю. И многие из них понимают, что это для них ещё ново.

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

Мало кто знает, что эта область панели задач (полоска внизу экрана, на котором есть кнопка «Пуск») была всего лишь экспериментом в первой нормальной операционной системе Windows 95. Нормальной в смысле удобной обычному пользователю.

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

Частично эксперимент удался и, благодаря этому, мы имеем возможность пользоватся такой удобной вещью как трей. Многие функции были добавлены, некоторые стали совершенней. А число программ, способных работать в трее, увеличивается в прогресии, делая работу удобной. Но часто и это удобство «вылезает боком»…

В этом разнообразии мы и будем разбиратся, дабы сделать нашу панель задач ещё более изящней!

Не буду писать много слов, а просто перейдем к настройке. Ведь чем быстрее научимся управлять треем, тем быстрее прийдет к нам «нормальное» удобство.

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

Скрытый трей Раскрытый трей

  1. Нажмите на панели задач правой кнопкой мыши и выберите пункт «Свойства». Свойства системной панели задач
  2. Для того, что бы скрытие значков заработало, поставьте галочку на пункте 1.
  3. Далее нажмите кнопку «Настроить…» (пункт 2).

Настройки системного трея

Что ж, вот и наш трей превратился из длинного и несуразного в красивый и изящный.

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

Для чего нужен системный трей

Приветствую всех кто читает этот блог и тех кто пришел первый раз. Меня частенько спрашивают мои читатели: «Что такое системный трей, где находится системный трей, как настроить» и многое другое. Поэтому я решил написать подробную статью, чтобы каждый раз не отвечать на один и тот же вопрос.

Если вы посмотрите в правый нижний угол экрана (там, где находятся часы) скорее всего вы обнаружите хорошо знакомые иконки ICQ, Skype, установленный антивирус и значки других программ. Эта зона и называется системным треем или по-другому область уведомлений. Второе название как нельзя лучше, раскрывает предназначение трея – уведомлять, какие программы запущены и работают в фоновом режиме. Также вы наверное замечали, что именно в области трея появляются сообщения: Windows, антивирусов и других программ.

Трей предоставляет возможность кликом левой кнопкой мыши активировать и вывести на экран интерфейсное окно выбранной программы. Клик правой кнопкой приводит к открытию диалогового окна, в котором можно произвести быструю настройку основных функций программы или вообще ее закрыть.

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

Путем несложной настройки с помощью специальных программ, можно поместить практически любую программу в трей.

Никогда не наблюдали такую картину в Windows XP – при наведении на область системного трея раскрывается горизонтальная линия различных ярлыков, которая совсем чуть-чуть не доходит до кнопки «Пуск»? А я наблюдал и неоднократно. Может быть и удобно, но чтобы каждый раз искать из кучи приложений, программу, которая вам нужна — не очень. Зачастую там находятся не совсем нужные вещи для пользователей.

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

Трей в Windows 7 сделан так, что значки располагаются не на панели задач. Выше на скриншоте можете в этом убедиться. Это очень удобно.

Почему так происходит? Ответ на этот вопрос очень прост. Рассмотрим ситуацию с точки зрения пользователя. Вы поместили в системный трей свой любимый iTunes, проигрыватель видео, парочку интернет браузеров, естественно Microsoft Office и т.д. Этот список можно продолжать практически до бесконечности. Для вас это, несомненно, гораздо более удобно, чем сворачивать все окна и пользоваться ярлыками или запускать программы через «Пуск». А теперь рассмотрим эту же ситуацию с точки зрения компьютера.

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

Выделяя необходимый объем памяти программам, которые находятся в автозагрузке, Windows тем самым уменьшает ее доступный объем. В результате, компьютер начинает тормозить. Если такое происходит, не стоит сразу винить творение Microsoft и переустанавливать Windows. Как и любой другой компонент операционки системный трей очень легко настраивается.

Если из системного трея исчез значок для извлечение USB накопителей, тогда читайте: «Пропал значок безопасное извлечение устройства».

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

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL