2009-10-21 2 views
2

관리자 권한으로 프로세스를 실행해도 작동하지 않습니다. 관리자 권한 명령 프롬프트에서 해당 응용 프로그램을 실행하면 정상적으로 실행됩니다. 하지만 아래 코드는 그렇지 않습니다.관리자 권한으로 프로세스를 실행해도 작동하지 않습니다.

Process setupws = new Process(); 
setupws.StartInfo.FileName = @"setupws.exe"; 
setupws.StartInfo.Verb = "runas"; 
setupws.StartInfo.UseShellExecute = true; 
setupws.Start(); 
setupws.WaitForExit(); 

setupws.exe 파일은 관리자가 아닌 정상적으로 실행됩니다.

내가 뭘 잘못하고 있니?

감사합니다.

PS입니다. 또한 내 app.manifest 파일에서 highestAvailable 및 requireAdministrator를 사용했습니다.

+1

나는 단지 당신이 runas 이상을 필요로한다고 확신합니다. – leppie

답변

1

매니페스트의 requestedExecutionLevel level = requireAdministrator로 설치 프로그램을 표시해야합니다 (Create and Embed an Application Manifest (UAC) 참조).

추신. requireAdministrator는 setupws.exe의 매니페스트에 있어야합니다.

+0

내 매니페스트가 requestedExecutionLevel level = "requireAdministrator"를 설정했습니다. 또한, 내 setupws.exe 파일은 매니 페스트 파일을 사용하지 않으므로 아마 그렇지 않을 것입니다. 그러나 그것이 내가 "runas"가 생각한 것입니다. – JimDel

+0

정말 setupsw 매니페스트 여야합니다 ... 어쨌든 ProcessInfo에서 ErrorDialog 및 ErrorDialogParentHandle을 설정해야합니다 (http://msdn.microsoft.com/en-us/library/bb756922.aspx 참조). 일부 HWND는 고도 UI 대화 상자를 소유하고 있어야합니다. –

1

관리자로 앱을 실행 한 적이 있으십니까? 당신은 다음과 같이 할 수 있습니다 :

using System.Security.Permissions; 

var mine = new EnvironmentPermission(PermissionState.Unrestricted); 
mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);