Exibir bandeja / notificação se um processo específico estiver sendo executado no Windows

1

Estou executando no Windows 8.

Costumo executar nginx e vagrant no fundo do meu PC. Não há interface de usuário para esses programas. A única maneira que eu posso dizer se eles estão correndo é olhar para o Gerenciador de Tarefas ou fazer um "ps" do Mingw.

Eu quero exibir um indicador visual sutil se o processo estiver em execução e remover o indicador quando o processo não estiver. Como eu faço isso?

Mais algumas informações:

  • Um item de bandeja seria um excelente indicador visual. Uma mensagem de status transparente no canto superior direito também estaria bem.
  • Eu corro mingw e cygwin. Portanto, uma solução padrão do Windows, o powershell ou uma solução para um desses recursos também
  • Eu imagino que há uma maneira no mingw de pesquisar os resultados de ps a cada 60 segundos e alternar um ícone de alguma forma com base nos resultados ... mas como?

UPDATE: resposta foi fornecida. Aqui está o meu último script AutoIt. Ele é executado usando apenas 1,5 Megs de memória e pode ser gerenciado como qualquer ícone / notificação de bandeja:

$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
    
por Jen S. 24.01.2014 / 10:14

1 resposta

2

Você pode codificar um programa simples na linguagem freeware AutoIt para executar essa tarefa. É muito fácil. Deixe-me tentar imediatamente ...

$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

se você instalar o autoit e compilar isso, você tem exatamente o que precisa. Eu poderia fazer algo mais bonito com o ícone da bandeja aparecendo e desaparecendo em vez da bolha da bandeja se você quisesse:)

    
por 24.01.2014 / 11:51

Tags