Доступ к FileName из процесса работает только после оператора Debug? - PullRequest
0 голосов
/ 23 июня 2018

У меня есть интересная проблема здесь, так как эта ошибка появляется, только когда НЕТ операторов Debug, предшествующих доступу к FileName.

//make a new process
process = new Process();
process.StartInfo.FileName = executable;
process.Start();
Debug.Print((process.MainModule == null).ToString());
Debug.Print(process.MainModule.FileName);
path = process.MainModule.FileName;
process.Kill();

Я просто хочу получить доступ к пути к файлу исполняемого файла, который япередать его (например, chrome.exe, чтобы он нашел путь, а позже я смог получить значок и т. д.).Однако без операторов Debug код просто не работает и выдает исключение NullReferenceException для

path = process.MainModule.FileName

Я уверен, что это не самый эффективный способ просто получить путь к файлувыполнимо, и если у кого-то есть другой подход к этому или есть какое-либо представление о том, почему это происходит, это будет высоко оценено.

1 Ответ

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

Приведенный выше пример на самом деле ужасный способ приблизиться к этому.Некоторые процессы не будут убиты, и количество времени, которое требуется для запуска процесса, сильно зависит от того, что вы пытаетесь запустить.Я бы посоветовал создать список всех установленных программ и отсортировать их, что будет намного надежнее.

Вот ссылка о том, как к этому подойти ( Получить установленные приложения в системе ).

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