Невозможно перетащить в отлаженное приложение из привилегированного запуска Visual Studio 2010 - PullRequest
10 голосов
/ 30 декабря 2010

Я отлаживаю свое приложение, которое имеет функции перетаскивания в Visual Studio 2010. Мне нужно запустить IDE в привилегированном режиме, так как этого требует часть моего проекта.

Моя проблема:

Я могу перетаскивать, когда запускаю файл .exe нормально (запускается из Windows Explorer (WE)), но при отладке в VS2010 я не могу сделать перетаскивание между моим приложением и WE.*

Я пытался открыть WE в привилегированном режиме, но все еще не могу отладить.

У вас есть такая же проблема?Если вы это сделаете, у вас есть обходной путь?Пожалуйста, поделитесь.

Ответы [ 2 ]

6 голосов
/ 11 октября 2012

Другой обходной путь - запустить двоичный файл отладки из Проводника Windows и подключиться к процессу из Visual Studio через меню «Инструменты» или «Отладка». Я проверил, что при использовании этого подхода в отладчике принимаются события перетаскивания.

5 голосов
/ 30 декабря 2010

Это особый аспект UAC, называемый UIPI (изоляция привилегий пользовательского интерфейса). Это предотвращает угон процесса с повышенными правами с помощью сообщений Windows или перетаскивания. Он защищает от разрушительных атак. Для повышенного процесса есть способ явно разрешить сообщения с помощью ChangeWindowMessageFilter. Но не для перетаскивания, это не на основе сообщений.

Для этого не существует достойного обходного пути на уровне API, это нужно делать декларативно. Манифест для программы должен использовать uiaccess = true, иметь кодовую подпись с сертификатом от утвержденного органа и быть установленным в файлы c: \ windows или c: \ program.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...