A melhor abordagem para isso é executá-lo como um serviço. Provavelmente, você pode se safar usando o Sc.exe .
Eu escrevi um programa de registro de temperatura e o inseri como uma tarefa agendada no Windows XP.
Até agora, consegui atingir esse objetivo:
1. Faça com que a tarefa seja executada antes mesmo que alguém faça login (por exemplo, na tela "Pressione Ctrl-Alt-Del")
Mas estou tendo problemas com isso:
1. Quando efetuo login, efetuo logout e, em seguida, efetuo login novamente, a tarefa agendada não está mais ativa. Eu não posso mais vê-lo na guia Processos do Gerenciador de Tarefas. Eu suspeito que fecha quando eu sair.
2. Tentei definir a propriedade "Executar como ..." da tarefa como DOMAIN\my-username
e também tentei SYSTEM
, mas o problema # 1 acima ainda persiste.
RESUMO:
Quero que meu programa esteja em execução enquanto o Windows estiver ativo.
EDIT 1:
Meu programa é na verdade um script Python. Portanto, sua linha de comando em Tarefas Agendadas é:
C:\Python26\pythonw.exe "C:\path\to\templogger.py"
Ele grava dados em um arquivo na pasta pública local (por exemplo, totalmente acessível por todos que fazem login localmente).
A melhor abordagem para isso é executá-lo como um serviço. Provavelmente, você pode se safar usando o Sc.exe .
Já tentou dar ao usuário "fazer logon como um trabalho em lote" e "fazer logon como um serviço" direitos?