Como iniciar o aplicativo de administração GUI no login do Windows

Como iniciar o aplicativo de administração GUI no login do Windows

Escrevi um pequeno aplicativo em C# para controlar o tempo que meu filho passava jogando no PC.

Agora estou procurando uma maneira de executar este aplicativo como administrador quando o garoto fizer login em seu perfil. O aplicativo exibe alguns avisos na tela e armazena algumas estatísticas em arquivo. Portanto, ele não pode ser executado oculto/em segundo plano (precisa exibir mensagens na tela) ou ser executado com privilégios de usuário padrão (os logs podem ser removidos...)

Passei horas tentando fazer isso funcionar através do agendador de tarefas do Windows, mas não consegui tornar este aplicativo visível ...

Qualquer tipo de dica serámuitoestimado !

PS Se não for possível executar aplicativos de administração GUI na área de trabalho de outro usuário - talvez alguém possa aconselhar onde/como posso armazenar o arquivo de log para que ele seja facilmente acessível por (inteligente) kido :)

Responder1

A maneira correta de fazer isso é executar o aplicativo como um serviço ou como outro usuário e, em seguida, enviar janelas para a área de trabalho do usuário (criança). Veja oPágina MSDN sobre serviços interativos; embora os serviços não possam mais ser executados de forma verdadeiramente interativa, eles ainda podem interagir indiretamente com os usuários, incluindo usuários que executam sob contas diferentes. OWTSSendMessagefunção pode ser usada para mostrar uma caixa de mensagem em uma sessão atualmente logada, ou seu processo pode usarCreateProcessAsUser(se tiver acesso) para criar um processo na sessão do usuário com o qual possa interagir (enquanto o processo pai ainda pode criar arquivos de log que não podem ser excluídos pelo usuário, etc.).

EDIT: Um processo não precisa estar em execução como um serviço para usar essas funções. Eles são úteis para serviços, mas também para qualquer outro processo executado (de forma não interativa) como outro usuário.

EDIT 2: Quanto aos arquivos de log, eles podem (e devem) ser configurados com permissões somente de acréscimo para o processo de log. Dessa forma, mesmo que o programa esteja sendo executado com as permissões da criança, ele só poderá anexar ao arquivo (não excluir, substituir, truncar, etc.). Você pode abrir um arquivo solicitando apenas acesso de acréscimo.

Claro, isso não evita que a criança simplesmente encerre o processo. Não há como prevenirquesem executá-lo como outra conta, embora um processo watchdog (executando, potencialmente, como outro usuário) possa tentar reiniciá-lo imediatamente sob demanda.

informação relacionada