Pergunta

Quando eu executo um serviço como conta local do local, posso usar os seguintes códigos para iniciar um programa GUI na conta de login atual:

WtsgetActiveConsolesionId

No entanto, quando eu executo o serviço como minha conta pessoal, o programa GUI não aparecerá. Eu posso vê -lo no gerenciador de tarefas.

O que devo fazer para lançar o programa GUI quando o serviço estiver em execução em minha conta pessoal?

Foi útil?

Solução

John e JDigital estão certos - a partir do meu entendimento, os serviços geralmente podem ter acesso à área de trabalho (você precisa usar o sistema local) ou o acesso à rede (você precisa especificar uma conta a ser executada).

Você precisará de dois dividir seu aplicativo em dois - um para interagir com o desktop e o outro para conversar sobre a rede. As duas partes podem conversar entre si para transmitir informações para o usuário final.

Outras dicas

Tudo tem a ver com permissões, acredito.

O local do local tem privilégios suficientes para se passar pelo usuário atual, mas sua conta não.

Você teria que descobrir uma maneira de estender as permissões ao seu serviço, solicitando credenciais ou conectando -se a um serviço auxiliar que é executado como sistema local.

(Por que você deseja executar com sua conta em vez do local do local?)

Tenho certeza de que existem respostas muito mais completas que lidam com os in e Outs de fazer isso, mas em alto nível acho que esse é o problema.

Você pode estar executando na estação de janela ou desktop errados. Veja isso Referência da Microsoft em estações de janelas e desktops.

Acredito que o que você está tentando fazer pode ser considerado uma vulnerabilidade de segurança. Também não é provável que funcione em alguns casos também. Eu acho que o JDigital está correto, pois tem a ver com estações de janelas e tentar obter acesso à estação de janela atual e à área de trabalho. Isso está muito confuso quando você está sob um servidor de serviços de terminal, onde existem várias estações de janelas atuais. A Microsoft realmente não quer você para o que você deseja e eles dificultam cada lançamento do Windows.

Acho que sua melhor aposta é resolver o problema de outro ângulo e apenas criar um aplicativo da GUI que o usuário executa (manaully ou automaticamente no login) e ele fala com seu serviço.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top