Pergunta

Eu tenho um sistema, configurei -o como normal com o UAC e, no meu ambiente Delphi, compilar meu projeto chamado ka.exe, crio um projeto InstallShield para ele.

Configuração e tudo completa ok! Mas sempre que inicio meu programa, ele requer elevação e não tenho idéia do porquê.

Apenas para ter certeza de que o InstallShield não está jogando MindGames em mim, compilei um novo .exe e copiei manualmente para o meu computador em rede.

O ícone parece o mesmo e também tem esse escudo da UAC.

Meu projeto tem algumas funções dentro que podem estar conversando com um nome compartilhado de rede e conversando com um banco de dados SQL ...

Então, por que meu aplicativo precisa de elevação para executar?

Foi útil?

Solução

Primeiro, se você conseguir com Delphi, adicione um manifesto incorporado com asInvoker. Se você não puder, faça um externo e coloque -o na mesma pasta que o exe. Se o escudo desaparece, ótimo.

Caso contrário, as coisas ficam mais obscuras. Às vezes, quando você executa um aplicativo, o Windows aparece depois e diz "Isso pode não ter funcionado; você gostaria de tentar novamente com configurações recomendadas?". Se você disser ok, existe uma política de grupo armazenada que elevará esse aplicativo pelo resto do tempo. Parece que, se você renomear o EXE, o efeito da política do grupo para. Você poderia tentar isso.

Outras dicas

Mesmo que o nome do arquivo não tenha a string "Configurar" ou "instalar", o Windows pode pensar que precisa de elevação se os recursos do VersionInfo incluirem esses textos.

Verifique o VersionInfo, tente limpar qualquer string suspeita, pois acredito que o Windows verifica ainda mais textos (como textos não ingleses).

No Windows Vista e mais tarde, quando o UAC foi ativado, os administradores ainda não têm direitos completos, como vimos no Windows XP e abaixo. Se o seu programa tentando executar uma das tarefas administrativas (por exemplo, solicitações em locais protegidos pelo sistema; escreva dados em locais protegidos, como %ProgramFiles %, Windows Directory, hkey_local_machine; e muito mais), seu programa precisa solicitar elevação para trazer a interface do consentimento PROMPENTO Aparecer que precisa de aprovação pelos administradores.

Você terá algumas informações detalhadas aqui

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