18

「C:\Program Files」、「Users[username]」、および Sys32 にファイル/フォルダーを作成する必要があるアプリケーションを作成する必要があります。また、アプリケーションはいくつかのレジストリ エントリを作成する必要があります。

このアプリケーションは、Vista 以降で動作する必要があります。また、Windows Server 2003 以降では。

上記のオペレーティング システムには、ユーザー アカウント制御 (UAC) の概念があり、プログラム ファイルにアクセスし、レジストリに書き込むには管理者権限が必要です。

多くのフォーラムを調べたところ、Microsoft SDK を使用すると、現在のユーザーが管理者権限を持っているかどうかを確認できることがわかりました。ただし、「CheckTokenMembership」機能は、Vista 以降のバージョンの OS では失敗します。

また、マニフェスト ファイルを使用して、現在のアプリケーションに管理者権限が必要であることを事前に OS に通知できるソリューションも見つけました。これは、「requestedExecutionLevel」タグを使用して行われます。

Visual Studio 2005 を使用してアプリケーションを作成しています。Visual Studio でアプリケーションを作成すると、既定のマニフェスト ファイルが作成されます。アプリケーションが常に管理者権限で実行されるように、このマニフェスト ファイルを変更して「requestedExecutionLevel」タグを含めることはできますか?

ユーザー (管理者または標準) に「管理者として実行」としてアプリケーションを実行するように要求せずに、アプリケーションを管理者権限で実行する他の方法はありますか??

ありがとう!

4

2 に答える 2

39

このオプションは、プロジェクト プロパティの [リンカー] -> [マニフェスト ファイル] -> [UAC 実行レベル] にあります。これを に設定しrequireAdminstratorます。

これにより、デフォルトで生成されたマニフェストにrequestedExecutionlevel必要なものが含まれるため、ユーザーがまだ昇格していない場合は、権限を昇格するように自動的に求められます。

Visual Studio UAC オプションのスクリーンショット

于 2014-08-11T18:01:35.227 に答える