2009-12-10 16 views
5

私が取り組んでいるWinFormsアプリケーションがあります。 Vista/Win7の管理者として実行する必要のある小さな機能が1つあります。私はマニフェストのアプリケーションのrequestedExecutionLevelをどのように設定できるのか理解しています。そのトリックは、ユーザーが管理者としてアプリケーション全体を実行する必要はなく、その一部だけを管理することです。ですから、ほとんどの機能をasInvokerで実行したいと思います。要求されたDLLの実行レベル

私がdllにadmin機能を置くと、それをrequireAdministratorとしてマークする方法はありますか?私はMTを使用してDLLにマニフェストを追加しようとしましたが、動作していないようです。私は何をする必要がありますか?

答えて

4

いいえDLLベースのアプリケーションの実行レベルをDLL単位で区別する方法はありません。これはプロセス全体の設定です。昇格したprivでそのDLL内のコードを実行する、アプリケーション内で別のプロセスを呼び出さなければなりません。

ただし、rundllまたはrundll32プログラムを使用してDLLを直接実行することもできます。これは、特定のDLLをロードして実行するために設計されたスタンドアロンのWindowsプログラムです。あなたはrundllプロセスを向上させ、あなたが望む分離を得ることができます。

rundllのためのグーグルは、あなたにそれを使用する方法について多くの助言を与えるでしょう:)。

+0

DLLを独自のプロセスとして実行できますか、またはEXEから起動する必要がありますか? – epotter

+0

@epotter私はこの件について私の答えを少し更新しました。 – JaredPar

3

高度はプロセスごとになので、DLL自体を昇格させることはできません。別の昇格したプロセスでDLLをホストすることを検討する必要があります。または高度COMのモニカを見て、そのようにすることができます。

関連する問題