SERVI?O EXECUTA EXE

NETVOO 31/10/2016 13:20:39
#468622
Pessoal, criei um serviço pelo C# e ele executa algumas funções para mim de forma automatizada e eu gostaria que ele fizesse a verificação se um exe meu estiver fechado ele mandasse abrir ele.
Consegui fazer a verificação porem ele não da start no programa, alias ele chama o meuprograma.exe lista ele no taskmgr como se estivesse em execução porem ele não abre a tela do software nem o icone que fica no system tray .

é possível fazer isso um serviço executar um exe.
Se sim alguém pode da uma dica de como faz .

Estou chamando ele assim.

if (File.Exists(Environment.CurrentDirectory + @[Ô]\meuprograma.exe[Ô]))
{
var rstruix = new System.Diagnostics.ProcessStartInfo();
rstruix.FileName = [Ô]meuprograma.exe[Ô];
rstruix.UseShellExecute = true;
rstruix.Verb = ([Ô]runas[Ô]); //O segredo é esta linha!
rstruix.WorkingDirectory = Environment.CurrentDirectory;

System.Diagnostics.Process.Start(rstruix);

}

E tentei assim tambem :
System.Diagnostics.Process.Start(@[Ô]C:\caminhodomeuexezmeuprograma.exe[Ô]);
VBHELP 31/10/2016 13:54:52
#468625
Não é problema de permissão? Esta com o UAC ativado? Tenta desativar o UAC reiniciar o pc e testar novamente.
OCELOT 31/10/2016 14:00:38
#468626
Basicamente não dá para fazer isso. Serviços são feitos para rodar em segundo plano sem nenhuma interação com o usuário, tanto que eles rodam fora do contexto do usuário, e a partir do Windows Vista isso ficou mais restrito ainda já que eles foram isolados em uma sessão diferente da do usuário.

VBHELP 31/10/2016 15:06:59
#468631
Entendi ele quer dar um bypass no UAC.. Isso não vai rolar, não do jeito que você fez é bem mais complexo que isso.. Mas tem sim como.
OCELOT 31/10/2016 16:21:37
#468637
UAC não tem nada a ver com isso, ele só limita as permissões do usuário, o problema ai é como se você quisesse rodar um programa em um usuário estando logado em outro.

O que acontece é assim, quando você loga com o seu usuário do Windows é criado uma sessão, no XP esta sessão era a 0 e os serviços também rodavam nesta mesma sessão. A partir do Vista o usuário logado roda na sessão 1, enquanto que os serviços continuam rodando na sessão 0.

E o grande problema com isso é que você só pode executar programas na mesma sessão em que você está, e é por isso que ele até consegue executar o programa do serviço, ele aparece no gerenciador de tarefas mas não aparece nada pro usuário, pois o programa executou na sessão do serviço e não na do usuário, e até onde eu saiba não tem o que fazer quanto a isso.

Isso seria mais ou menos o mesmo que você logar dois usuários ao mesmo tempo, por exemplo pelo terminal services em um Windows Server, e de um destes usuários querer executar um programa sendo que a janela teria que aparecer para o outro usuário, o que não é possível fazer.
NETVOO 31/10/2016 16:42:49
#468638
E agora entendi porque o serviço não consegue pegar o enviroment username . Pois ele está rodando na sessão diferente.
Mas se eu informar o usuário e senha que eu uso na máquina la no serviço será que ele deixaria executar? ou realmente não tem como fazer isso.
DS2T 31/10/2016 17:00:14
#468639
Acho que não rola cara.
Pro seu caso, acho que o ideal seria ter um projeto Windows Form rodando em background mesmo...
OCELOT 31/10/2016 17:58:17
#468641
Citação:

:
E agora entendi porque o serviço não consegue pegar o enviroment username . Pois ele está rodando na sessão diferente.
Mas se eu informar o usuário e senha que eu uso na máquina la no serviço será que ele deixaria executar? ou realmente não tem como fazer isso.



Eu acredito que não, mas nunca testei, só que como ele ainda vai rodar em uma sessão diferente da do usuário não deve fazer diferença.
NETVOO 01/11/2016 16:53:04
#468675
Oloco JABA funcionou cara com o Loader que tem nesse projeto ai que vc postou valeu !!!!
JABA 01/11/2016 17:07:32
#468676
Citação:

Oloco JABA funcionou cara com o Loader que tem nesse projeto ai que vc postou valeu !!!!



Quando for lançar o vírus, me avisa pra que eu possa atualizar o meu antivirus.
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas