хотите изменить файл в разделе Program Files с Win7 - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть небольшая программа на C # для изменения XML-файла, который находится под Program Files. Машина Windows 7 машина. Эта небольшая программа запускается командным файлом (называемым A.bat), потому что я хочу передать ему параметр.

У меня есть мастер-файл (называемый M.bat), который является отправной точкой. M.bat запустит установщик и подождет, пока установка не будет завершена. Затем M.bat запустит A.bat, что запустит мою маленькую программу с параметром.

Прямо сейчас я получаю следующее исключение:

System.UnauthorizedAccessException: Access to the path 'C:\Program Files\MyTest\Test.config' is denied.

Я знаю, что это вызвано ужесточением безопасности в Win7. Работает нормально под XP.

Я не могу использовать «Запуск от имени администратора» для запуска M.bat или вручную «Запуск от имени администратора» для запуска A.bat, поскольку оба будут сообщать, что не могут найти целевой исполняемый файл (поскольку исходное местоположение не является действительно «текущим» местоположением затем).

Есть ли способ запустить исполняемый файл от имени администратора в командном файле? или в программе на C # я могу дать себе права администратора?

или ...

Ответы [ 3 ]

4 голосов
/ 01 февраля 2011

Не так, чтобы это было невидимо / скрыто от пользователя ... Я бы предложил найти способ заставить его работать при запуске от имени администратора.Или вы можете установить манифест приложения (см. Здесь: http://www.enusbaum.com/blog/2007/08/26/how-to-run-your-c-application-as-administrator-in-windows-vista/), чтобы запустить ваше приложение от имени администратора, что также может работать.

Суть в том, что вы не можете работать с правами администратора, если вы не запускаете от имени администратораили если пользователь не отключает UAC (что совсем не рекомендуется).

2 голосов
/ 01 февраля 2011

Вам потребуется повысить свои привилегии через приглашение UAC. Добавьте манифест в вашу программу, как описано в этот ответ .

1 голос
/ 01 февраля 2011

Вы должны запросить права администратора при запуске программы.Посмотрите на этот образец

...