2012-10-23 1 views
2

.EXE를 관리자로 실행하도록 요청할 수있는 방법이 있습니까? 따라서 :관리자로 실행 (요청할 필요 없음)하려면 a .exe를 표시하십시오.

  1. UAC가 runas admin으로 설정되어 있고 프롬프트가 표시되지 않으면 admin으로 실행됩니다.
  2. 사용자가 runas admin (다른 로그인을 요구 함) 할 수없는 경우 사용자로 실행됩니다.
  3. 프롬프트가 표시되면 사용자에게 메시지가 표시됩니다. 승인 된 경우 관리자로 실행됩니다.
  4. 프롬프트가 거부 된 경우 사용자로 실행됩니다.

2 .exe 프로그램에서이 작업을 수행하는 방법을 알고 있습니다. 하지만 나는 그걸로하고 싶다. 이 프로그램은 사용자의 라이센스 키를 입력합니다. HKLM에서 앱에 관리자 권한이 있으면 모든 사용자가 키를 갖습니다. HKCU에서는 관리자 권한이없는 경우.

+0

아니요,하지만 http://stackoverflow.com/a/10255024/886887을 참조하십시오. –

+0

@HarryJohnston - 나는 그것에 대해 생각하지 않았습니다. 영리합니다. 답변으로 입력하면 기쁜 마음으로 표시 할 수 있습니다. –

답변

3

실행 파일을 표시하는 방법이 없으므로 사용자가 권한 상승 프롬프트를 거부하면 관리자 권한없이 계속 실행됩니다. 그러나 프로세스는 상승 된 권한으로 동일한 실행 파일에서 자신의 두 번째 복사본을 시작하고 작업을 새 프로세스로 전달하거나 (성공적으로 시작된 경우) 작업 자체를 계속 진행할 수 있습니다 (그렇지 않은 경우).

자신을 높이는 방법에 대한 예제는 this answer을 참조하십시오.

0

requireAdmin 대신 highestAvailable을 요청하면 1과 2를 얻을 수 있습니다. 나는 그것을 좋아하지 않는다. 앱의 나머지 부분에서 당신이 승진했는지 아닌지보기 위해 테스트 할 필요가 있기 때문이다.

# 4를 얻을 수 없습니다. 앱이 실행을 시도하고 UAC 대화 상자를 표시하며 사용자가 UAC를 거부하면 앱이 실행되지 않습니다. 고도가 필요한 응용 프로그램의 일부분 인 경우 해당 부분을 별도의 exe로 이동하고 고도가 필요한 해당 exe에 매니페스트를 놓은 다음 주 응용 프로그램에서 필요하지 않은 상태로 둡니다.