У меня есть механизм «автоматического обновления», который много лет работал под Windows XP, который не работает под Windows 7, потому что запрос пользователю (которого никогда не было под Windows XP) разрешить программе запускаться с Права администратора не отображаются.
Программа win32 (написанная на Borland Delphi) использует LogonUser () и ImpersonateLoggedOnUser () для олицетворения пользователя (локальной учетной записи с правами администратора), чтобы она могла заменить выбранные файлы в папке Program Files.
Если я вручную войду в Windows 7, используя эту учетную запись пользователя, а затем попытаюсь удалить файл в папке Program Files, Windows 7 запрашивает у меня разрешение на продолжение работы программы - если я даю разрешение, файл удаляется, если Я отказываю в разрешении «Отказано в доступе», и удаление не разрешено.
При попытке выполнить то же, что описано выше, «доступ запрещен» - это результат без запроса пользователя.
В аналогичном вопросе я вижу (относительно создания временных файлов (где основной смысл данных ответов совершенно справедливо «не делайте этого»), что такое приглашение может быть выдано «в коде», но я не вижу, где этот метод на самом деле объясняется.