9

Ich bin Debug meiner Anwendung, die Drag-and-Drop-Funktionen in Visual Studio 2010 hat. Ich muss die IDE im privilegierten Modus seit einigen ausführen von meinem Projekt benötigt so.Drag-and-drop auf Debug-Anwendung von einer privilegierten ausführen Visual Studio 2010

Mein Problem:

kann ich per Drag & Drop, wenn normalerweise die EXE-Datei ausführen (aus dem Windows Explorer (WE) laufen), aber wenn in VS2010 Debuggen kann ich nicht Drag & Drop zwischen meiner app tun, und wir .

Ich habe versucht, WE im privilegierten Modus zu öffnen, kann aber auch nicht debuggen.

Haben Sie das gleiche Problem? Wenn ja, haben Sie dafür einen Workaround? Bitte teilen.

Antwort

4

Dies ist von Entwurf, ein Aspekt der UAC namens UIPI (User Interface Privilege Isolation). Es verhindert, dass ein nicht-erhöhter Prozess ein erhöhtes durch Windows-Nachrichten oder Drag-and-drop übernimmt. Es schützt vor Splitterangriffen. Es gibt eine Möglichkeit für den erhöhten Prozess, explizit Nachrichten mit ChangeWindowMessageFilter zuzulassen. Aber nicht zum Ziehen und Ablegen, es ist nicht nachrichtenbasiert.

Es gibt keine vernünftige API-Ebene Workaround dafür, es muss deklarativ getan werden. Das Manifest für das Programm muss uiaccess = true verwenden, mit einem Zertifikat einer autorisierten Autorität code-signiert sein und in c: \ windows- oder c: \ program-Dateien installiert sein.

+0

@Passant So traurig, dass zu hören :(Deaktivierung von UAC ist eine gute Umgehungsmöglichkeit für mich. Wenn Sie UAC schnell ein-/ausschalten, zB über die Befehlszeile, würde ich gerne verwenden. –

+0

@Passant Eine weitere Sache über die Deaktivierung von UAC ist, dass wir das Betriebssystem neu starten müssen :( –

+0

@Passant Ich habe Frage dazu hier geschrieben http://superuser.com/questions/227860/how-to-toggling-uac-on- off-schnell-zB-using-command-line-in-windows-7. Bitte beitreten Sie uns, wenn Sie interessiert sind. –

6

Eine andere Problemumgehung besteht darin, die Debug-Binärdatei von Windows Explorer auszuführen und an den Prozess in Visual Studio über das Menü "Extras" oder "Debuggen" anzuhängen. Ich habe überprüft, dass Ziehereignisse im Debugger empfangen werden, wenn dieser Ansatz verwendet wird.