Получение информации о процессе 64-битного приложения из 32-битного приложения - PullRequest
0 голосов
/ 26 сентября 2018

Я использую приведенный ниже код для получения информации о процессе из моего 32-разрядного приложения.

var process = Process.GetProcessById((int)processID);
if (process != null && process.MainModule != null && process.MainModule.FileVersionInfo != null)
{
    windowInfo.CompanyName = process.MainModule.FileVersionInfo.CompanyName;
    windowInfo.FileDescription = process.MainModule.FileVersionInfo.FileDescription;
    windowInfo.FileName = process.MainModule.FileVersionInfo.FileName;
    windowInfo.FileVersion = process.MainModule.FileVersionInfo.FileVersion;
    windowInfo.ProductName = process.MainModule.FileVersionInfo.ProductName;
    windowInfo.ProductVersion = process.MainModule.FileVersionInfo.ProductVersion;
}

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

У кого-нибудь есть обходной путь?Я просто хочу запросить параметры внутри тела "if".
Дайте мне знать, если потребуется дополнительная информация.

1 Ответ

0 голосов
/ 19 октября 2018

Это решение сработало для меня: Получить местоположение основного модуля процесса x64 из приложения x86?

Я просто использовал соответствующую информацию из запроса WMI:

(from item in searcher.Get().Cast<ManagementObject>()
                        where ((UInt32?)item["ProcessId"]).HasValue && ((UInt32?)item["ProcessId"]).Value == processID
                        select new Win32Process()
                        {
                            ExecutablePath = System.Convert.ToString(item["ExecutablePath"]),
                            ProcessId = (UInt32?)item["ProcessId"],
                        }).ToArray();

Возвращенный массив будет содержать информацию и для 64-битных приложений, даже если они запущены из 32-битного приложения.

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