1

Eclipseでlaunch4jのANTタスクを使用して、JavaプログラムのWindows実行可能EXEファイルを作成し、「MyApp.exe」という名前を付けています。Windows システムで管理者認証なしでこのプログラムを実行する必要があります。これまでのところ、これは機能します。UACプロンプトがなくても問題なく動作します。

しかし、launch4j ANT タスクでこの EXE の名前を「install.exe」、「setup.exe」、または「updater.exe」に変更すると、UAC アイコンが表示され (右下にプログラム アイコンが重なっています)、UAC プロンプトが表示されます。プログラムの開始 (Windows Vista または 7 のみ)。これは、Windows エクスプローラーでプログラムの名前を変更した場合にも発生します。

Windowsエクスプローラーで名前を変更した同じプログラム

Windowsが昇格されたアクセス権(UAC)でプログラムを起動する原因となるファイル名にいくつかの「予約語」があるようです。

誰かがこの問題を確認できますか? アプリケーションに「install.exe」または「update.exe」という名前を付けることはできませんか?

4

2 に答える 2

4

はい、UAC をトリガーする予約語がファイル名に含まれています。

@eeeこれをコメントとして投稿します:

MSDN:

アイコン オーバーレイ: Windows Vista では、実行可能ファイルを起動するために昇格が必要な場合、実行可能ファイルのアイコンに盾のアイコンを「スタンプ」して、この事実を示す必要があります。...シールド アイコン オーバーレイは、インストーラー検出ヒューリスティックに従って昇格が必要と見なされる実行可能ファイルにも自動的に配置されます。たとえば、setup.exe という名前のファイルは、実行可能ファイルにアプリケーション マニフェストが埋め込まれていなくても、シールド アイコン オーバーレイを自動的に受け取ります。

http://msdn.microsoft.com/en-us/library/bb530410.aspx

于 2013-01-06T19:00:35.977 に答える