В Windows Vista впервые появился компонент User Account Control (средство контроля пользовательских учетных записей). Этот компонент запрашивает подтверждение действий, требующих прав администратора, в целях защиты от несанкционированного использования компьютера.
И теперь из-за этого компонента ваши приложения перестали работать должным образом. Как запросить пользователя запустить приложения с правами администратора?
Оказывается рецепт прост. В проект необходимо добавить всего лишь один файлик с именем app.manifest.
Project -> Properties - > app.manifest.
И такой код должен он содержать:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
После этого в свойствах проекта указываем созданный нами манифест.
Все, компилируем приложение и теперь при запуске будет запрос на повышенные права для приложения и ваши методы будут отрабатывать свой функционал, а не выдавать исключение.