Получить переменные среды другого процесса - PullRequest
1 голос
/ 09 июля 2020

Я работаю с Service Fabri c и хотел бы создать наблюдатель переменных среды выбранных процессов.

Я думал об этом методе:

var processes = Process.GetProcessesByName(processName);
foreach (var process in processes){
    var environmentVariables = process.StartInfo.EnvironmentVariables;
    foreach (DictionaryEntry envVar in environmentVariables){
        // envVar.Key, enVar.Value ...
    }
}

Но Я не могу использовать StartInfo, потому что здесь не запускаются процессы. Есть ли другой способ получить переменные среды (ключ / значение) процессов (полученные с помощью GetProcessByName / ID)?

Ошибка:

System.InvalidOperationException: Process was not started by this object, so requested information cannot be determined.

1 Ответ

0 голосов
/ 09 июля 2020

По размещенным ссылкам я нашел блог Алексея Гапотченко. Он разработал готовый к использованию пакет nuget.

Считывает переменные среды процесса. Функциональность достигается за счет чтения блока среды процесса (PEB) на уровне операционной системы.

blog.gapotchenko / read-environment-variables

github / Gapotchenko.FX.Diagnostics.Process

nuget / packages / Gapotchenko.FX.Diagnostics.Process

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...