1

Я работаю на Windows 8.

Я часто запускаю nginx и vagrant на фоне своего ПК. Для этих программ нет пользовательского интерфейса. Единственный способ узнать, запущены ли они, - это посмотреть на диспетчер задач или сделать "ps" из Mingw.

Я хочу отобразить тонкий визуальный индикатор, если процесс запущен, и удалить индикатор, если процесс не запущен. Как мне это сделать?

Еще немного информации:

  • Лоток будет хорошим визуальным индикатором. Прозрачное сообщение о состоянии в правом верхнем углу также будет хорошо.
  • Я бегу Mingw и Cygwin. Таким образом, стандартное решение Windows, powershell или решение для одного из них также подойдет
  • Я предполагаю, что в mingw есть способ опрашивать результаты ps каждые 60 секунд и переключать значок как-то на основе результатов .... но как?

ОБНОВЛЕНИЕ: Ответ был предоставлен. Вот мой последний скрипт AutoIt. Он работает с использованием только 1,5 мегабайта памяти и может управляться как любой значок / уведомление на панели задач:

$run=1
while $run
 if processexists("nginx.exe") Then
  TraySetIcon("C:\Users\jens\Workspaces\AutoItScripts\nginx_on.ico")
 Else
  TraySetIcon("C:\Users\jens\Workspaces\AutoItScripts\nginx_off.ico")
 EndIf
 sleep(30000) ;wait 30 seconds
wend

1 ответ1

3

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

$run=1
while $run
 if processexists("calc.exe") Then
  traytip("program running","calc.exe",30)
 Else
  TrayTip("clears any tray tip", "", 0)
 EndIf
 sleep(500) ;wait 500ms
wend

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .