Como iniciar um processo não aumentado
Meu aplicativo é executado comorequestedExecutionLevel
definido comohighestAvailable
.
Como faço para executar um processo não elevado?
Eu tentei o seguinte, mas não funcionou:
Process.Start(new ProcessStartInfo {FileName = "foo.exe", Verb = "open"})
Eu tentei os seguintes níveis de confiança para iniciar meu processo usando a API do Win32, mas nenhum deles funciona corretamente:
0
1260: This program is blocked by group policy. For more information, contact your system administrator.
0x1000
The application was unable to start correctly (0xc0000142). Click OK to close the application.
0x10000
Process starts then hangs
0x20000
All options are not available
0x40000
Runs as admin
Se eu corrertskill foo
do meu aplicativo elevado, ele reinicia foo com privilégios corretos.
O que eu preciso é uma solução na qual eu não precise especificar o nível de confiança. O processo deve começar com o nível de confiança correto automaticamente, assim como otskill
reinicia a ferramentafoo.exe
no nível de confiança correto. O usuário seleciona e executafoo.exe
e assim pode ser qualquer coisa.
Se eu puder obter o nível de confiança de um processo de alguma forma, posso fazer isso facilmentefoo.exe
é executado quando meu aplicativo pode capturar seu nível de confiança.