2011-06-22 12 views
1

私のアプリケーションのセットアップにNSIS(エディタ用のHM NISedit 2.0.3)を使用しています。 UAC(7とVista)を持つWindowsの場合は、mysetup.exeを右クリックして管理者として実行するまで(アンインストールの場合も同じです)、時々インストールされません。UACをオフにしてもこの問題は発生しません。インストールが進む前にスクリプト内のUACを無効にする方法や、このUACの問題を克服する方法を教えてください。 私は現在直面している上記の問題のためのいくつかの解決策をお勧めします。Windows 7およびVista用のUACを有効にしたインストール/アンインストール

答えて

1

あなたは管理者権限が必要な場合は、インストーラをマークするrequestexecutionlevelを使用する必要があります(あなたは$ PROGRAMFILESにインストールするか、HKEY_LOCAL_MACHINEに書き込みをした場合):

RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) 

!include LogicLib.nsh 

Function .onInit 
UserInfo::GetAccountType 
pop $0 
${If} $0 != "admin" ;Require admin rights on NT4+ 
    MessageBox mb_iconstop "Administrator rights required!" 
    SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED 
    Quit 
${EndIf} 
FunctionEnd 

あなたは、現在のユーザーのみ($のAPPDATA /のためにインストールする場合$ localappdataとHKEY_CURRENT_USER)RequestExecutionLevel user

+0

これはUACポップアップをトリガして管理者パスワードを要求し、入力された場合はインストールを続行しますか?または、インストーラが管理者権限で実行されていない場合は、単に終了しますか? –

+0

@didibus "RequestExecutionLevel admin"パートは、UACがチェックするマニフェストビットを追加するので、これはUACプロンプトをトリガします... – Anders

関連する問題