Как вывести сообщение в трее

Обновлено: 02.05.2024

Спасибо за помощь:D , но я сам разобрался.

Там оказывается всё проще парнной репы :) .

DWORD WM_TASKBARCREATED = RegisterWindowMessage("TaskbarCreated");

Originally posted by mail0
Там оказывается всё проще парнной репы :) .

DWORD WM_TASKBARCREATED = RegisterWindowMessage("TaskbarCreated");


Благодарю - пригодится в ближайшее время.

Originally posted by Lei fang
Здравствуй pacific_7!


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

ЗЫ В коде есть некоторая корявость касательно switch, я сейчас не в том состоянии, что бы соображать :), если кто знает как обойти, то расскажите, а то самому ковыряться влом, т.к. пока не надо и не занимался.

-->Всегда пожалуйста. Только вот касательно VB - я ни в зуб ногой. См. прикрепленный файл, там на Си.
Спасибо pacific_7. Думаю разберусь, так как Си я лучше знаю или дольше (сказать точнее). Лишь бы это был не VC++, так как я в нем ни в зуб ногой. Я знаю только старый Bornald C++ 3. 1.

-->В коде есть некоторая корявость касательно switch
Если разберусь что к чему, то попробую помочь

Originally posted by pacific_7
Всегда пожалуйста. Только вот касательно VB - я ни в зуб ногой. См. прикрепленный файл, там на Си.

ЗЫ В коде есть некоторая корявость касательно switch, я сейчас не в том состоянии, что бы соображать :), если кто знает как обойти, то расскажите, а то самому ковыряться влом, т.к. пока не надо и не занимался.

эта прога делает иконку в трее, при наводе на которую выскакивает тултип, а где подсказка о которой говорилось?

Originally posted by Matush
эта прога делает иконку в трее, при наводе на которую выскакивает тултип, а где подсказка о которой говорилось?

void SendToTray(DWORD dwMessage,bool baloon,TCHAR* szInfoTitle,TCHAR* szInfo)
NOTIFYICONDATA Nim;
lstrcpy(Nim.szInfoTitle,szInfoTitle);
lstrcpy(Nim.szInfo,szInfo);
Nim.uTimeout=3000;
Nim.dwInfoFlags=NIIF_INFO;
Nim.cbSize=sizeof(NOTIFYICONDATA);
Nim.hWnd=hDlg;
Nim.uID=1;
if (baloon)
Nim.uFlags=NIF_INFO;
else
Nim.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
>
Nim.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICONMAIN));
Nim.uCallbackMessage=WM_TRAYNOTIFY;
lstrcpy(Nim.szTip,szTip);
Shell_NotifyIcon(dwMessage,&Nim);
>

Это может и криво написанная функция, но работает
Вот так например:
SendToTray(NIM_MODIFY,true,_T("Заголовок"),_T("Текст"); //показать baloon tip
SendToTray(NIM_ADD,false,NULL,NULL); //просто добавить иконку в трей
SendToTray(NIM_DELETE,false,NULL,NULL); //удалить иконку

date

02.10.2018

user

itpro

directory

PowerShell, Windows 10

comments

комментариев 20

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

Самый простой способ вывести окошко с произвольным тестом через подсистему сценариев Windows – Wscript.

Следующий код выведет обычное текстовое окно с необходимым текстом и кнопкой OK.

$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("Скрипт формирования отчета выполнен")

Wscript.Shell вывод уведомлений в POwershell

$wshell.Popup

$Output = $wshell.Popup("Скрипт формирования отчета завершен! Хотите вывести его на экран?",0,"Отчет готов",4+32)

Общий синтаксис и параметры метода Popup:

  • 0 — кнопка ОК.
  • 1 — кнопки ОК и Отмена.
  • 2 — кнопки Стоп, Повтор, Пропустить.
  • 3 — кнопки Да, Нет, Отмена.
  • 4 — кнопки Да и Нет.
  • 5 — кнопки Повтор и Отмена.
  • 16 — значок Stop.
  • 32 — значок Question.
  • 48 — значок Exclamation.
  • 64 — значок Information.

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

  • -1 — таймаут.
  • 1 — кнопка ОК.
  • 2 — кнопка Отмена.
  • 3 — кнопка Стоп.
  • 4 — кнопка Повтор.
  • 5 — кнопка Пропустить.
  • 6 — кнопка Да.
  • 7 — кнопка Нет.

всплывающее уведомление в POwerShell

Модуль устанавливается из онлайн репозитория с помощью менеджера пакетов Windows 10:
Install-Module -Name BurntToast

Теперь, например, в ранее рассматриваемый скрипт автоматического отключение от Wi-FI сети при подключении к Ethernet можно добавить красочное уведомление:

New-BurntToastNotification -Text "Отключение от Wi-Fi сети", "Вы были отключены от Wi-Fi сети, т.к. Вше устройство было подключено к скоростному Ethernet подключению." -AppLogo C:\PS\changenetwork.jpg

Итак, теперь вы знаете как вывести уведомление пользователя через PowerShell. Если у пользователя есть динамики, можно даже сыграть ему мелодию:

  1. В строке поиска меню Пуск, введите "обл" (без кавычек)
  2. Выберите из списка пункт "Отображение или скрытие области уведомлений на панели задач"
  3. Откроется диалоговое окно со списком настроек уведомлений для каждой программы, как показано на рисунке выше
  4. Вы можете выбрать один из трех вариантов: "Показать значок и уведомления", "Скрыть значок и уведомления" и "Показать только уведомления"
  5. Если все выпадающие списки показаны как неактивные, то для их активации вам необходимо убрать галочку с пункта "Всегда отображать все значки и уведомления на панели задач" в нижней части окна
  6. Выставьте пункты в соответствии с вашими пожеланиями
  7. Нажмите "ОК"

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

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

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

Примечание: Некоторые изменения, как, например, снятие галочки с пункта "Всегда отображать все значки и уведомления на панели задач", вступают в силу сразу. Так что будьте аккуратны при редактировании настроек.

Как удалить значки из области уведомлений в Windows 7 (трей)?

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

Если вы знакомы с реестром, или же вы предпочитаете не использовать сторонние приложения, то вот процедура для очистки кэша системного трея в реестре:

  1. Сделайте резервную копию реестра прежде, чем что-либо делать (узнать как это сделать вы можете в статье Изучаем устройство и базовые операции реестра Windows)
  2. Откройте редактор реестра (см. ту же статью)
  3. Перейдите к ключу:
    • HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify
  4. В правой панели Regedit удалите параметр "IconStreams"
  5. Так же удалите параметр "PastIconsStream"
  6. Выйдите из системы и снова войдите. Изменения вступают в силу только после повторного входа или рестарта процесса Explorer.exe

Если вы не привыкли или просто не хотите вручную редактировать реестр, то вы можете использовать программы очистки. Как, например, CCleaner. Эта утилита включает в себя функцию очистки кэша иконок в системном трее. Сам пункт называется "Tray Notification Cache" и находится в списке дополнительных параметров очистки. Возможно, вам придется запустить CCleaner от имени администратора.

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

Описание : На определённое рабочее место приходит информация о поступившем на обработку документе. Сейчас много времени теряется из-за того, что пользователь внужден работать сразу в нескольких программах и не видит пришло ему что то или нет. Пока применяются радиостанции для отмашки на обработку. но хотелось бы покрасивее сделать.

(1) эх Лёха, Лёха. ;))
(2) нашёл плагины ромикса. ковыряю
(3) спасибо гляну - я участник этого клуба и у меня есть диск.

- Содержит "выгонялку" пользователей из 1С (выгонялка работает независимо от того, в каком режиме работают пользователи, и независимо
от наличия открытых модальных окон).

- Содержит "не пускалку" пользователей в 1С (не позволяет пользователям входить, пока идут работы с базой).

- Регистрирует файл с расширением MD, чтобы его можно было кликать из Проводника, Total Commander или Far Manager.

В каталоге информационной базы создайте каталог MD_Free
а внутри - файл stop.ini следующего содержания:

Чтобы "прицепить" новое стартовое окно к 1С, требуется прописать ярлык запуска 1С:Предприятие у пользователя на приложение Starter1C.exe (возможно, положив его в папку 1cv7\BIN).

- Содержит "выгонялку" пользователей из 1С (выгонялка работает независимо от того, в каком режиме работают пользователи, и независимо
от наличия открытых модальных окон).

- Содержит "не пускалку" пользователей в 1С (не позволяет пользователям входить, пока идут работы с базой).

- Регистрирует файл с расширением MD, чтобы его можно было кликать из Проводника, Total Commander или Far Manager.

Читайте также: