В настоящее время я использую функцию EnumProcesses для получения списка запущенных процессов. Однако, поскольку мое приложение работает в пространстве пользователя, оно не может получить дескрипторы процессов, не запущенных под пользователем, включая системные процессы. Есть ли другой метод, который даст мне доступ к этим? Все, что мне нужно, это имена процессов.
Я наконец нашел решение (цифры после публикации здесь в качестве моей последней отчаянной попытки). Если кому-то нужен только список имен процессов, запущенных в системе (всех процессов), это сделает это за вас.
Здесь может помочь запрос WMI (вполне возможно с использованием интерфейса COM WMI, но вам потребуется перевести документацию, ориентированную на VB (скрипт)). Класс Win32_Process
содержит все, что вам нужно.
Однако я это не тестировал, думаю, вы столкнетесь с той же проблемой: пользователи, не являющиеся администраторами, могут видеть только свои собственные процессы.