Каковы права доступа по умолчанию для процесса, запущенного с помощью ShellExecuteEx?

StackOverflow https://stackoverflow.com/questions/2559201

  •  23-09-2019
  •  | 
  •  

Вопрос

Мне нужно выполнить определенные операции над процессом, начатым с ShellExecuteEx - например, ожидание, дублирование дескрипторов, запрос и установка информации и т. д.Теперь мне интересно, смогу ли я сделать все это на hProcess член, который возвращается в SHELLEXECUTEINFO структура, к которой я перехожу ShellExecuteEx.Кто-нибудь это знает?

Вызывает ли процесс, который вызвал ShellExecuteEx иметь такие права, как PROCESS_DUP_HANDLE, SYNCHRONIZE, PROCESS_SET_INFORMATION, PROCESS_QUERY_INFORMATION (и т. д.) по умолчанию при использовании возвращаемого значения hProcess?

Это было полезно?

Решение

Я предполагаю, что это то же самое, что вы получаете от CreateProcess, хотя даже в этой документации об этом не говорится (я бы рискнул PROCESS_ALL_ACCESS).В любом случае вы всегда можете использовать GetProcessId() и OpenProcess(), чтобы открыть его с любым доступом, который вам нужен.

Другие советы

Да.Время онлайн, когда вам нужно беспокоиться о правах доступа, заключается в том, что если вы выполняете какую-либо задачу, которая запускает UAC, вам необходимо установить requestedExecutionLevel= 'highestAvailable'

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top