Faça um programa executar na inicialização do Windows apenas uma vez

2

Temos um programa que fica em um servidor e deve estar sempre em execução, mas é importante que apenas uma instância dele esteja em execução. Adicionamos uma chave de registro em 'HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion / Run' para que ela fosse executada na inicialização.

No entanto, estamos com um problema quando vários usuários fazem login no servidor pela área de trabalho remota - uma instância está sendo iniciada para cada usuário. Como podemos obtê-lo para que ele comece apenas uma vez, não importa quantos usuários estejam conectados?

    
por user1578653 27.08.2015 / 11:32

1 resposta

0

Obrigado ao @DavidPostill por me guiar na direção certa.

Eu fiz um arquivo de lote como sugerido, usando a seguinte pergunta em stackoverflow como base: link

Veja o que eu criei:

SETLOCAL EnableExtensions
set EXE=MyProgram.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
start C:/path/to/MyProgram.exe
:FOUND

Em seguida, alterei a entrada do registro para apontar para esse arquivo em lotes, em vez do próprio executável.

    
por 27.08.2015 / 12:26