C ++ Запросите административные привилегии, если на Windows 8

Простой вопрос: есть ли способ запрашивать административные привилегии, только если вы запускаете приложение в Windows 8?

Единственный метод, который я видел до сих пор, — это вызов внешней программы для ее уничтожения и повторного открытия с правами администратора, если она используется в Windows 8. Под внешней программой я имею в виду, например, скрипт vb.
Но этот метод действительно небезопасен и немного грязен.

Я спрашиваю, потому что в Windows 8 есть много мелочей, которые вы не можете больше делать без прав администратора. Например, запись / удаление файлов в папках с файлами программы и доступ к другим процессам с правами администратора.

-1

Решение

Насколько я знаю, процесс без повышенного токена не может быть повышен. Он может запустить новый процесс, повышенный с помощью ShellExecute с глаголом «runas» (см. http://blogs.msdn.com/b/vistacompatteam/archive/2006/09/25/771232.aspx). Конечно подсказка UAC покажет. Если вы действительно хотите обнаружить Windows 8, и на нем появляется только приглашение UAC, а не Windows 7, вы можете написать оболочку поверх основного приложения, которая запускает ваше основное приложение с приглашением UAC на Win8.

2

Другие решения

Других решений пока нет …