Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Evandro F. Souza

Windows Service

Recommended Posts

Primeiramente Bom dia/Boa tarde/Boa noite a todos.

 

Sou iniciante em dot.net, e estava brincando um pouco com os services do VS. Me impressionando com a facilidade que o framework tem de acessar o SO(Windows).

 

Até ai tudo bem, eu queria e consegui fazer o seguinte, fazer um service que de tempos em tempos verifique se um programa especifico esta aberto, se ele nao estiver ele abrirá o programa.

 

Consegui fazer tudo isso sem problemas, mas a duvida/problema é o seguinte.

 

Quando o meu serviço verifica que o programa especifico não esta sendo executado, ele executa, usando o método Start do objeto Process.

 

Porem ele executa e cria um novo processo sendo executado pelo usuario 'SYSTEM', e deste jeito o programa executado fica em outro plano, invisivel para usuario primario.

 

Por que isto acontece? E eu ja tentei todas os overloads possiveis deste metodo start, e não consegui executar como um usuario primario.

 

OBS importante: Se eu uso o MESMO código em uma aplicação windows form, ele executa exatamente da maneira que eu quero, e cria o processo em primeiro plano(usuario logado).

 

 

Desculpa o texto grande, mas é dificil explicar em poucas palavras.

 

Desde ja agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não conheço muito de Windows Service, mas provavelmente o software deve estar sendo executado com o mesmo usuário que esta iniciando o Windows Service!!

 

Abraços...

 

Primeiramente obrigado pela resposta.

 

É bem isto mesmo, eu demorei um bom tempo para desenvolver um serviço que funciona-se, eu sou desenvolvedor delphi e no C Sharp tem umas voltas a mais para fazer o serviço.

Depois de um bom tempo estudando com a ajuda do nosso grande amigo Google. Eu aprendi, e numa das 'voltas' me deparei com isto. Havia uma propriedade de um certo componente chamado 'serviceInstaller' se não me engano. Que você precisa escolher o tipo de conta, o nome da propriedade é 'Account'.

 

Nesta propriedade tem algumas opções[LOCAL_SERVICE,LOCAL_MACHINE,USER..], talvez tenha esquecido de alguma.Nos tutoriais sempre pedia para esclher o local_machine. Depois de ja feito o serviço e funcionando, mudei para 'User'(justamente por achar ter descobrido a solução). Acontece que na instalação do service, o .net usa um programa 'InstallUtil.exe' para instalar os services, e ao eu compilar com o account USER ele começou a pedir o usuario e senha. E este usuario e senha eu coloco o do logon(do usuario q estou logado) e ele diz q esta errado!! Muito estranho meeesmo.Deve estar faltando algum pequeno detalhe.E na internet nao acho nada especifico.

 

Obrigado pelo retorno.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.