Как в Inno Setup обновить область уведомлений (также известную как системный трей)?

Как в Inno Setup обновить область уведомлений (также известную как системный трей)? В частности, я устанавливаю службу в разделе «Код», которая помещает значок в область уведомлений. Я хочу немедленно удалить его, желательно еще в разделе «Код». (Или вообще не ставить значок, но я не думаю, что это возможно). Когда я наведу указатель мыши на значок, он сразу же исчезнет. Может ли Inno отправить сообщение в лоток, чтобы это происходило автоматически?


person ees    schedule 01.09.2014    source источник
comment
Эта служба должна некорректно завершить какой-то процесс с помощью пользовательского интерфейса (которому принадлежит значок в трее). Вам не повезло, если вы не знаете хотя бы дескриптор этого значка (для вызова функции Shell_NotifyIcon с сообщением NIM_DELETE). Что ж, you might not be, но это довольно хакерский проект. Если это ваша служба, правильное закрытие пользовательского интерфейса с этим значком - это лекарство. Подобное было задано, например, here.   -  person TLama    schedule 02.09.2014


Ответы (1)


Я предполагаю, что вы используете taskkill, чтобы убить задачу. Если нет, проигнорируйте этот ответ :-)

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

Проблема заключалась в том, что я запускал taskkill с / f, который принудительно (жестко) убивает задачу. Если вы убьете его без / f, он отправит сигнал о закрытии приложению, приложение завершится без ошибок и удалит свой значок на панели задач.

В моем bat-файле я выполняю две команды taskkill; сначала без / f, а затем снова с / f. Если первый работает (что обычно и должно), значит, все в порядке, и значок в системном трее исчезнет. Если по какой-то причине первый выйдет из строя, второй все равно убьет его, хотя в этом случае значок в системном трее не будет удален.

Итак, в моем случае я использую: taskkill / t / im Memu * taskkill / f / t / im Memu *

Работает отлично :-)

person rborchert    schedule 09.11.2019