2011-11-23 27 views
8

低レベルのAPIにアクセスするために管理者権限で昇格する必要がある.netアプリケーションがあります。 requireAdministratorに設定されたアプリケーションマニフェストのrequestedExecutionLevelを使用しています。UAC標高はドラッグアンドドロップを許可していません

アプリケーションは、Windowsエクスプローラからドラッグアンドドロップ要求を受け取る必要もあります。私はマニフェストで真にuiAccessを設定しようとしており、アプリケーションのAuthenticode署名、制限された場所(プログラムファイル)などのインストールなど、他の要件に準拠しようとしました。アプリケーションはエラーなしで正しく実行されています。 UACは標高を促します。

しかし、引き続きドラッグアンドドロップ要求を受け入れることはできません。

+0

の可能重複[C#のドラッグドロップは、Windows 7で動作しない](HTTP ://stackoverflow.com/questions/2833709/c-sharp-drag-drop-does-not-work-on-windows-7) –

答えて

7

Vista以上では特権の低いプロセスは、より高い特権のプロセスにドラッグアンドドロップできません。

最終行は、アプリケーションが昇格されている場合、Windowsエクスプローラからのドラッグアンドドロップが になっていないことです。

http://blogs.msdn.com/b/patricka/archive/2010/01/28/q-why-doesn-t-drag-and-drop-work-when-my-application-is-running-elevated-a-mandatory-integrity-control-and-uipi.aspx

+0

私は公式MSの参考資料として残していますが、ヘルゲの答えは良いですポジション:-) –

2

私はドラッグを作り、ここにUACとUIPIと仕事を削除する方法を説明した:

How to Enable Drag and Drop for an Elevated MFC Application on Vista/Windows 7

+0

+1、問題を回避する方法があることを学ぶのは嬉しいです。 C#の 'ChangeWindowMessageFilter'を使用してOPのための任意のポインタ?ちょうど 'DllImport'? –

+0

@EricJ:単純なDllImportを使用したいと思います。 –

+0

@HelgeKlein:情報をありがとう。しかし、D&D要求を受け入れるフォームからChangeWindowsMessageFilterまたはChangeWindowsMessageFilterExを呼び出すことができませんでした。メソッドは正常に実行されますが、D&Dは無効です。 WindowsはD&D用のメッセージを使用しないようですが、いくつかのCOMコンポーネント([D&D in windows](http://msdn.microsoft.com/en-us/library/windows/desktop/bb776905(v=vs.85) .aspx))。ところで、私はxp、Vista、win7に勝つためにコードを実行する必要があります。 – CDS

関連する問題