2017-06-15 32 views
1

PrivilegesRequired=lowestで設定を実行します。管理者権限でセットアップでインストールするためのアプリケーション(dxwebsetup.exe)の設定と実行方法Inno Setup - セットアップがPrivilegesRequired = lowestに設定されている場合、管理者特権でアプリケーションを実行する方法

私のコード(Inno Setup - Avoid displaying filenames of sub-installers):代わりにExecrunas動詞と

procedure CurStepChanged(CurStep: TSetupStep); 
var 
    ProgressPage: TOutputProgressWizardPage; 
    ResultCode: Integer; 
begin 
    if CurStep = ssInstall then 
    begin 
    if IsComponentSelected('DirectX') then 
    begin 
     ProgressPage := CreateOutputProgressPage('Installing prerequsities', ''); 
     ProgressPage.SetText('Installing DirectX...', ''); 
     ProgressPage.Show; 
     try 
     ExtractTemporaryFile('dxwebsetup.exe'); 
     StartWaitingForDirectXWindow; 
     Exec(ExpandConstant('{src}\_Redist\dxwebsetup.exe'), '', '', SW_SHOW, 
      ewWaitUntilTerminated, ResultCode); 
     finally 
     StopWaitingForDirectXWindow; 
     ProgressPage.Hide; 
     end; 
    end; 
    end; 
end; 

答えて

1

使用ShellExec、:

ShellExec('runas', ExpandConstant('{src}\_Redist\dxwebsetup.exe'), '', '', SW_SHOW, 
      ewWaitUntilTerminated, ResultCode); 

現在のInno Setupのプロセスは、管理者権限なしで実行すると、あなたが得るUACプロンプト。

+1

「次のプログラムでこのコンピュータを変更しますか?」というメッセージは表示されませんか? –

+0

@NicoZコマンドラインからユーザーアカウント制御を無効にしてから再度有効にします。これを行うには、パスカルスクリプトからコマンドを実行します。 Google for Search * UAC CMD *を有効または無効にします。 – GTAVLover

+0

@ GTAVLover見つけたすべての解決策では、システムを再起動する必要があります。 –

関連する問題