Процесс может поднять себя после запуска?

Для процесса действительно ли возможно получить администратора priviledges после того, как это запустилось? Если так, как?

Примеры должны быть в C или C++.

Редактирование - Примеры должны также использовать код umanaged.

5
задан Nathan Osman 17 January 2010 в 17:42
поделиться

1 ответ

Просто добавьте общие свойства в элемент управления пользователя.

Можно добавить атрибуты [Category («MyCategory»)] и [Description («Свойство, управляющее именем wossname»)] , чтобы сделать его приятнее, но при условии, что это свойство public , оно должно отображаться на панели свойств.

-121--892025-

Что не так с ЦП на 100%? Вот к чему нужно стремиться, а не пытаться избегать. Эти математические вычисления важны, нет? Если вы не пытаетесь избежать захвата какого-либо другого ресурса, не управляемого явно ОС (мьютекс, диск и т.д.) и используемого основным потоком, обычно попытка замедлить поток - плохая идея. Как обстоит дело с многоядерными системами (какими будут почти все системы, идущие вперед)? Ты бы тормозил нить без всякой причины.

ОС имеет концепцию квантового потока. Он позаботится о том, чтобы ни одна важная нить в вашей системе не была голодна. И, как я уже упоминал, в многоядерных системах один поток на одном процессоре не влияет на производительность других потоков на других ядрах.

Я также вижу в другом комментарии, что этот поток также делает много дискового ввода-вывода - эти операции уже заставят ваш поток выйти, пока он ждет результатов, поэтому спящие не будут делать ничего.

В общем случае, если вы вызываете Sleep (x), в вашем дизайне есть что-то неправильное/ленивое, и если x = = 0, вы открываете себя для живых блокировок (поток, вызывающий Sleep (0), может быть немедленно перенесен, что делает его ночным).

-121--3453568-

Невозможно повысить разрешения процесса во время его выполнения. общий путь к этому заключается в создании нового процесса с повышенными разрешениями, когда это необходимо. Затем этот процесс выполняет работу, требующую более высоких привилегий, а затем завершает работу, возвращая управление в основной процесс. Можно сделать его достаточно прозрачным, установив для нового родительского окна процесса значение основного окна процесса.

Другой альтернативой является перезапуск основной программы с требуемыми разрешениями.

Существует статья об ОАК в Vista с примерами C++ , которая выглядит достаточно глубоко.

3
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: