설치 중에 특정 설치 프로그램을 실행하는 데 높은 권한이 필요한 경우 Inno 설치 프로그램에서 강제로 UAC 프롬프트를 표시 할 수 있습니까? 이 설치 프로그램을 건너 뛰는 것은 중요하지 않습니다. 권한 상승이 필요한지 (IsAdminLoggedOn()) 테스트하기 위해 AfterInstall 함수를 지정할 수 있다는 것을 알았지 만이 설치 프로그램을 특정 사용자로 실행하라는 UAC 프롬프트를 표시하는 방법은 무엇입니까?Force Inno 설치시 설치시 UAC 프롬프트 표시
1
A
답변
0
해결책을 찾았습니다. 당신이 당신의 설치 과정에서 상승 된 권한으로 특정 installator를 실행해야한다면, 다음이 필요합니다 다음과 같이
이
Files
섹션에서 installator을 지정하면SomeSetupAfterInstall()
을 정의해야한다[Files] Source: "SomeSetup.exe"; DestDir: "{tmp}"; AfterInstall: SomeSetupAfterInstall()
섹션
Code
에서. 관리자가 설치를 시작하지 않은 경우ShellExec
을 사용하여 설치자를runas
동사로 실행해야합니다. 그것은 다음과 같은 수 있습니다 :procedure SomeSetupAfterInstall(); var ErrorCode: Integer; TmpPath: String; RunMethod: String; begin TmpPath:=ExpandConstant('{tmp}'); if not IsAdminLoggedOn() then begin RunMethod := 'runas'; end else begin RunMethod := ''; end; ShellExec (RunMethod, TmpPath + '\SomeSetup.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode); end;
당신은 설치를 다시 실행해야 할 것 그리고 이미 마법사 단계에서 선택한 항목 사용자가 기억해야합니다. 비슷한 질문이 [이 질문에] (http://stackoverflow.com/q/20197554/960757). – TLama
내 경우가 상당히 다릅니다. 전체 설정을 다시 시작할 필요가 없습니다. 설치하는 동안 높은 권한으로 특정 .exe를 실행하기 만하면됩니다. 위에서 언급 한 'runas'에 대한 귀하의 제안은 저를 도왔습니다. 고맙습니다! – Megamozg