Ответ на ваш вопрос: Нет, вы не можете этого сделать.
Microsoft специально запрещает такое поведение. Если приложения могут добавить себя в список исключений, мы вернемся к тому беспорядку, который у нас был раньше.
Вам нужно, чтобы ваша программа не требовала административного доступа.
Задайте себе вопрос: Что вы делали в Windows XP?
- мне не разрешено запускать ваше программное обеспечение?
- Ваш софт рушится, когда я обычный пользователь?
- Ваше программное обеспечение не имеет никакой ценности и не имеет абсолютно никакой функциональности при работе обычным пользователем?
Windows XP не убедила UAC. Единственный способ для пользователя запустить вашу программу от имени администратора - войти в систему с другим пользователем. И это гораздо хуже для пользователя, чем нажать «Продолжить».
Если вы не хотите писать стандартное программное обеспечение, удобное для пользователя, то вы - часть проблемы. UAC - не проблема, UAC - удобство. я могу отключить UAC, работать как обычный пользователь на полную ставку, и ваше программное обеспечение все еще не будет работать.
Microsoft считает
- белый-листы
- Запомни мои предпочтения
- Не спрашивайте меня снова.
Если бы у вас был белый список, то каждая программа просто добавляла бы себя в такой список во время установки.
Если бы такой белый список существовал, то ваше приложение было бы целью для вредоносных программ. Он хотел бы изменить двоичный файл, чтобы выполнить то, что он хочет; так как он знает, что программа будет беззвучно повышена.
Вредоносным программам хотелось бы ткнуть в ваше приложение с помощью SendMessage, пытаясь передать недопустимые данные или структуры, пытаясь заставить ваше административное приложение выполнить нужный код.
Если бы у пользователя была возможность отключить будущие запросы для программ, он просто сделал бы это, и каждая программа работала бы как администратор, и мы вернемся к тому, как все было.
Все эти идеи не решают проблему: почти ни одна программа не требует административного доступа .
Наконец настало время заставить разработчиков смириться с этим фактом.
Белый список не может работать
Некоторые люди хотят найти способы заставить работать белые списки.
Установите флажок, чтобы пользователь мог сказать: «Больше не запрашивать у меня этот файл»
Если вы сохраните это имя файла, другие программы с таким же именем будут работать без прав администратора.
Хорошо, тогда мы запишем полный путь или используем хеш файла в качестве записи белого списка.
Если есть белый список, то другие программы будут добавлять себя в этот список при установке и запускать программы с правами администратора, которые не нужны пользователю.
Что, если разрешены только подписанные приложения, тогда мы знаем, что они безопасны. Приложения не безопасны, потому что они подписаны. Приложение не должно быть вредоносным, чтобы его можно было использовать для совершения плохих действий. (например, переполнение буфера во flash, firefox, т.е. chrome, safari, opera, word, photoshop, инструмент загрузки изображений Yahoo).
Вы должны хранить список допустимых кодировщиков в списке somehwere . И независимо от того, как вы нарезаете его, наличие любого белого списка будет означать, что приложения просто добавят себя в этот список.
- Ну, тогда не разрешайте им доступ к списку. Даже администраторы не могут добавлять элементы в список. Если даже администраторы не могут добавлять элементы в список, то как пользователь может добавлять элементы в список? Вы не можете добавлять элементы в белый список, если вам не разрешено добавлять элементы в белый список!
А как вы управляете белым списком? Допустим, пользователь передумал, или папа передумал, или ИТ передумал, или корпорация передумала, или издатель программного обеспечения передумал: как вы удаляете элементы из списка - особенно когда никто разрешено изменять список.
Резюме: Белые списки не могут работать .