2011-11-23 8 views
8

Ho un'applicazione .NET in cui ho bisogno di elevare con diritti di amministratore a causa di accesso certo livello basso vincere API. Lo sto facendo utilizzando richiestoExecutionLevel nel manifest di applicazione impostato su requireAdministrator.UAC elevazione non permette il drag and drop

L'applicazione ha anche bisogno di ricevere drag and drop richieste da Windows Explorer. Ho provato a impostare uiAccess su true in manifest e ad aderire ad altri requisiti come la firma dell'autenticode dell'applicazione, l'installazione in posizione limitata (file di programma) ecc. L'applicazione funziona correttamente senza errori (su Vista, Win 7) dove l'utente ottiene UAC prompt per elevazione.

ma ancora non in grado di accettare le richieste di drag and drop.

processi
+0

possibile duplicato del [C goccia # trascinamento non funziona su Windows 7] (http : //stackoverflow.com/questions/2833709/c-sharp-drag-drop-does-not-work-on-windows-7) risposta –

risposta

7

Bassa privilegiati non possono drag-and-drop per quelli più alti-privilegiati su Vista e versioni successive.

La linea di fondo è che il trascinamento da Esplora risorse non funzionerà su se l'applicazione è elevata.

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

di Helge è migliore, anche se me ne vado questo come un punto di riferimento per la MS ufficiale posizione :-) –

2

ho descritto come fare drag and drop di lavoro con UAC e UIPI qui:

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

+0

+1, ottimo per imparare c'è un modo per aggirare il problema. Qualche suggerimento per l'OP sull'uso di 'ChangeWindowMessageFilter' da C#? Solo "DllImport'? –

+0

@EricJ .: Io userei semplicemente DllImport semplice. –

+0

@HelgeKlein: Grazie per le informazioni. Ma chiamare ChangeWindowsMessageFilter o ChangeWindowsMessageFilterEx dal modulo che accetta la richiesta di D & D non ha funzionato. Il metodo viene eseguito correttamente ma D & D è ancora disabilitato. Sembra che Windows non usi più messaggi per D & D, ma alcuni componenti COM ([D & D in windows] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb776905 (v = vs.85) aspx)). BTW, ho bisogno di eseguire codice su Win XP, Vista e 7. vincere – CDS