Можно ли запустить программу из Visual Studio без повышенных разрешений? - PullRequest
3 голосов
/ 09 сентября 2010

Хорошо, поэтому изначально я собирался спросить о перетаскивании в Windows 7. Я нашел ответ, который искал здесь: C # Перетаскивание не работает в Windows 7 . По сути, это говорит о том, что, поскольку я использую Visual Studio (а впоследствии и мою программу) с повышенными разрешениями, какой-то слой изоляции не позволяет мне перетаскивать файлы из проводника в мою программу.

Причина, по которой я запускаю Visual Studio с повышенными разрешениями, заключается в том, что для локального запуска сайта в IIS необходимы права администратора, а веб-приложение входит в мое решение. Есть ли способ, с помощью которого Visual Studio может запускать и отлаживать другие мои приложения как обычный пользователь?

Ответы [ 6 ]

2 голосов
/ 09 сентября 2010

Состояния MSDN :

Запуск приложения без повышенных прав из процесса с повышенными правами

Часто задаваемый вопрос: какзапустить приложение без повышенных прав из процесса с повышенными правами, или, что более важно, как запустить процесс с использованием моего маркера без повышенных прав, когда я запускаю с повышенными правами.Поскольку прямого способа сделать это не существует, ситуацию обычно можно избежать, запустив исходное приложение от имени обычного пользователя и подняв только те части приложения, которые требуют административных прав.Таким образом, всегда есть процесс без повышенных прав, который можно использовать для запуска дополнительных приложений в качестве текущего пользователя настольного компьютера.Однако иногда процессу с повышенными правами нужно, чтобы другое приложение работало без повышенных прав. Этого можно достичь с помощью планировщика задач в Windows Vista®.Процесс с повышенными правами может зарегистрировать задачу для запуска в качестве текущего пользователя настольного компьютера.

Вы можете использовать это и реализовать простое приложение запуска (возможно, макрос VS), которое вы запускаете вместоваше приложение.Приложение запуска будет:

  • Создать запланированное задание, которое будет запущено немедленно или запускается событием
  • Запустите отладчик
  • Подключите отладчик VS кзапущенный процесс
2 голосов
/ 09 сентября 2010

Почему бы вам просто не создать еще один ярлык на рабочем столе, который запускает devenv.exe без повышения прав?

1 голос
/ 12 ноября 2013

Для этой цели я использую командную строку старой школы:

runas /trustlevel:0x20000 "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"

А затем просто нажмите F5 в Studio.

1 голос
/ 09 сентября 2010

Из вашего приложения вызовите ChangeWindowMessageFilter со следующими значениями, чтобы разрешить перетаскивание в / из вашего приложения с повышенными правами и приложений без повышенных прав, таких как Explorer:

ChangeWindowMessageFilter (WM_DROPFILES, MSGFLT_ADD);
ChangeWindowMessageFilter (WM_COPYDATA, MSGFLT_ADD);
ChangeWindowMessageFilter (0x0049, MSGFLT_ADD);

Кредит: http://blog.helgeklein.com/2010/03/how-to-enable-drag-and-drop-for.html

1 голос
/ 09 сентября 2010

Отладчик VS привязан к экземпляру браузера, в котором запущен VS, но вы все равно можете использовать другой экземпляр браузера для просмотра тестируемого сайта. Действия на стороне сервера по-прежнему будут выполняться через отладчик (но вы не получите отладку на стороне клиента - инструменты разработчика IE8 и FireBug, конечно, по-прежнему доступны).

0 голосов
/ 22 февраля 2012

Вы можете использовать Visual Studio с повышенными привилегиями для программирования, но Visual Studio не может запустить исполняемый файл.

Мне нравится ответ 0xA3, но если вы не хотите идти на неприятностисоздания макроса VS и запланированного задания для запуска вашей программы, вы можете просто создать ярлык на рабочем столе для запуска исполняемого файла (отладочной или выпускной) и использовать его для запуска вашей программы.

Если выЗапустите отладочную версию, вы можете использовать «Присоединить к процессу» в меню отладки Visual Studio, чтобы присоединить и выполнить некоторую отладку.

...