2013-06-07 644 views
10

Inno Setupを使用してインストーラを作成しています。インストールプロセスの一環として、私はTomcatをインストールしています。 Windows 7では、私は、ここで説明する問題に苦しむ:Inno Setupを使用してファイルに「管理者として実行」を設定する方法

http://blog.paulbouwer.com/2010/10/23/the-case-of-the-annoying-tomcat-6-monitor/

は私が手動で設定することで、それを修正することができtomcat7w.exeの「管理者として実行」(問題と根本的な原因は、同様にtomcat7でも同じです)しかし、私はInno Setupを使ってそれをやる方法を知らない。

some_program.exeの実行を説明するスレッドが見つかりましたが、プログラムはTomcatサービスが開始されたとき(マシンの起動時など)に起動されるため、Inno Setupを使用して '実行する実際にそれを実行するのではなく、管理者として実行してください。

おかげ

+4

レジストリエントリを '[Registry]'セクションに追加すると、rこのアプリケーションをrunnintのためのデフォルトのアクションとして管理者としてun。例えば 'ルート:" HKLM ";サブキー: "SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers \"; ValueType:String; ValueName: "{app} \ tomcat7w.exe"; ValueData: "RUNASADMIN";フラグ:uninsdeletekeyifempty uninsdeletevalue; MinVersion:0,6.1' – RobeN

+1

[管理者特権を持つアプリケーションを起動するためのショートカットを作成する方法は?](http://stackoverflow.com/questions/16083187/how-to-create-a) -shortcut-to-launch-an-admin-privileges-the-cmd-linから) – TLama

+1

完全に働いた、ありがとう。私は今、私はこの質問の時間を投稿していたはずです:)。あなたが望むなら、私がそれを受け入れることができるように答えとしてコメントを投稿してください。ありがとうございました – learnAndImprove

答えて

12

あなたは、このアプリを実行するためのデフォルトのアクションとしてrun as Administratorを設定します[Registry]セクションでレジストリエントリを追加することができます。

例:あなたは本当に「管理者として実行」ショートカットのフラグを設定したい場合は

Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; \ 
    ValueType: String; ValueName: "{app}\tomcat7w.exe"; ValueData: "RUNASADMIN"; \ 
    Flags: uninsdeletekeyifempty uninsdeletevalue; MinVersion: 0,6.1 
+4

互換性設定は、適切な解決策ではなく、バンドエイドです。この場合の適切な解決策は、おそらく最初に管理者の資格情報を使用してサービスとして実行することです。 – Miral

+0

ルート: "HKCU"は私のために働いた。 –

1

は反対として([Run]セクション

Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: runascurrentuser nowait postinstall skipifsilent; 
+2

セットアップの最後に実行可能ファイルを管理者として正常に起動しますが、デスクトップのショートカットでは管理者として実行されません。 – Winter

8

runascurrentuserフラグ属性を追加します。ターゲットアプリケーションを強制的に管理者権限で実行する場合)、次のコードを使用できます。


このが基づいている:[MS-SHLLINK]で


。しかし、もっと自然に、Ansiバージョンでも動作するはずです。


ユーザーが[Run]セクションでpostinstallエントリを使用してインストールの最後に、プログラムを実行できるようにしたい場合は、もちろん昇格を明示的に要求する必要があります。

インストーラが管理者権限を持つを実行している場合、あなたは、単にrunascurrentuser flagを追加することができます。

[Run] 
Filename: "{app}\MyProg.exe"; Description: "Launch application"; \ 
    Flags: postinstall nowait skipifsilent runascurrentuser 

インストーラがなしで管理者権限を実行した場合、(そのためにあなたもshellexecフラグを必要とする)runasVerb parameterを設定:

[Run] 
Filename: "{app}\MyProg.exe"; Verb: runas; Description: "Launch application"; \ 
    Flags: postinstall nowait skipifsilent shellexec 
+1

Inno Devsの場合:[実行]セクションのpostinstallエントリが実際に別のInno Setup実行ファイルである場合、(失敗した)子プロセスの戻りコードをキャプチャするフラグを定義し、親インストールの.returnコードにXANDするオプション。 –

+1

@LaurieStearnここで機能リクエストを投稿するのはなぜですか? Inno Setupサイトに投稿してください。 –

+1

[はい、もちろんです](http://news.jrsoftware.org/read/article.php?id=105253&group=jrsoftware.innosetup#105253)。とにかくXORでなければなりません。進行状況の回避策[ここ](https://stackoverflow.com/questions/40947436/inno-setup-make-inno-setup-installer-report-its-installation-progress-status-t)。 –

関連する問題