Как программируемо определить, есть ли у пользователя права администратора (можно запустить установщик) - PullRequest
2 голосов
/ 14 марта 2010

в моем коде мне нужно определить, есть ли у текущего пользователя права на установку другого приложения (другое приложение VC2005 redist. Package) ... и оно должно работать в Vista.

Как я понимаю, CheckTokenMembership или IsAdministrator делаютне дать полного решения.

Спасибо

Ответы [ 3 ]

1 голос
/ 14 марта 2010

UAC работает не так, в 99,99% случаев ответ будет "Нет". Вы получите доступ, запросив его. Включите манифест в ваш установщик. Программа установки Redist уже имеет этот манифест.

1 голос
/ 16 марта 2010

Хотя в данный момент зарегистрированный пользователь может не иметь прав на установку, ему все равно может быть предложено диалоговое окно аутентификации (установка «через плечо»). Если в этом диалоговом окне введены правильные имя пользователя и пароль, они могут установить. Так что это не то, что вы можете надежно проверить, так как пользователь технически «разрешен», но только после ввода правильного имени пользователя / пароля.

Ваше лучшее решение - попытаться изящно подняться и потерпеть неудачу в случае неудачи:)

0 голосов
/ 14 марта 2010

Проверьте функцию PrivilegeCheck: http://msdn.microsoft.com/en-us/library/aa379304(VS.85).aspx

...