2

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

Не удалось обновить системный реестр. Пожалуйста, попробуйте использовать REGIDIT.

Приложение успешно выполняется при нажатии на кнопку ОК. Но я хочу избавиться от этого сообщения.

Проблема, очевидно, с разрешениями.

Приложение является просто исполняемым файлом.

Кто-нибудь может предложить решение?

2 ответа2

3

Используйте Sysinternals Process Monitor, чтобы увидеть, где в реестре пытается получить доступ приложение (как обычный пользователь).

Установите фильтр для имени процесса и наблюдайте только за активностью реестра (отключите сеть, файл и т. Д ....)

Затем найдите сообщения «Отказано в доступе» (в столбце результатов) и установите разрешения для этих расположений реестра.

Пожалуйста, будь осторожен....

1

Для Windows 7: если вашему приложению требуются права администратора для запуска, и вы доверяете ему, измените свойства исполняемого файла, чтобы он всегда выполнялся от имени администратора. IRC, вы щелкаете правой кнопкой мыши по исполняемому файлу, опция находится внизу вкладки Compatibility. - Также проверьте, есть ли более новая версия вашего приложения, которая правильно обрабатывает UAC и может быть запущена как обычный пользователь.

Для Windows XP: утилиту RunAs можно использовать для запуска некоторых программ с другими привилегиями, дополнительную информацию можно получить по адресу:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .