Необходимо в коде приложения проверить не запущено ли это приложение с правами администратора. Подскажите, пожалуйста, как правильно это сделать.
Пробовал:
1. ::IsUserAnAdmin — в экспериментах работало нормально, но в msdn'не рекомендуют её использовать, т.к. возможно в следующих версиях ос либо изменится её поведение, либо её не будет.
2. Использовал пример из msdn, приведённый в описании IsUserAnAdmin, с использованием CheckTokenMembership. Однако ниже есть замечание Stefan'а Ozminski, что пример этот не работает в Win Vista, если отключён UAC.
3. Использовал пример из msdn'а Stefan'а Ozminski, который предлогает код, альтернативный примеру из msdn'а выше. Однако в моих экспериментах в Win 7 он определяет, что у процесса есть права администратора, хотя процесс запускается из под обычного пользователя.