Как определить, какие объекты процесса можно безопасно проверить без исключения Win32ExceptionC#

Место общения программистов C#
Anonymous
Как определить, какие объекты процесса можно безопасно проверить без исключения Win32Exception

Сообщение Anonymous »

Я поигрался с System.Diagnostics.Process и написал небольшую утилиту:

Код: Выделить всё

    var pp = Process.GetProcesses().Where(p => p.Id > 0 && p.MainModule != null).ToList();
pp.ForEach(p => Console.WriteLine($"{p.ProcessName} - PID{p.Id} - {p.MainModule.ModuleName} - {p.MainModule.FileName}"));
Это привело к сбою, поскольку в некоторых модулях многие свойства вызывают исключение Win32Exception, например. https://learn.microsoft.com/en-us/dotne ... ew=net-8.0

Win32Exception 32-битный процесс пытается получить доступ к модулям
64-битного процесса.

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

Подробнее здесь: https://stackoverflow.com/questions/791 ... -win32exce

Вернуться в «C#»