Dinesh Kumar Dora Ответов: 1

C# как проверить, запущен ли процесс или нет с помощью описания процесса?


Здравствуйте друзья,

Я знаю, что проверка существования процесса по имени или PID, но в моем сценарии мне нужно проверить, запущен процесс или нет, с помощью описания процесса.
Есть ли какой-нибудь способ или обходной путь, чтобы сделать это?

В моем сценарии я должен определить, работает ли установщик пакета по имени процесса (setup64) и описанию процесса (Setup Suite Launcher Unicode) или нет. Если он работает, то мне нужно подождать, пока он выйдет.

Я могу обнаружить процесс по имени Setup64, но тогда есть вероятность, что он не может быть уникальным на некоторых машинах, так как setup-это своего рода общее имя. Поэтому, чтобы сохранить уникальность, мне нужно определить ее по описанию процесса. Любая идея, как я могу этого достичь. Пожалуйста помочь.

Что я уже пробовал:

Попробовал определить процесс по имени и PID.
Но не удалось обнаружить с помощью описания процесса

#realJSOP

Покажи нам свой код.

1 Ответов

Рейтинг:
6

#realJSOP

Вы не можете использовать PID, потому что он назначается системой при выполнении процесса, и поэтому весьма вероятно, что он будет отличаться каждый раз, когда процесс запускается. Вы не должны использовать это описание, потому что оно может быть изменено разработчиком между исполнениями. Вы должны использовать имя исполняемого файла. В интернете есть много кода, который иллюстрирует, как это сделать.


Dinesh Kumar Dora

thanks for your response John. But the problem here is that we are talking about installer exe, where the executable name (_is56.exe) will be changing everytime the build is taken. So i cant keep a static executable name for process checking. I agree with your PID justification too. Process name i cant use as that will show up as "Setup" or "Setup64" which is way too generic and chances are there that another setup might be running on the host machine. So, process name is also apt. Now the only option left is Process description - which in our case is unique and it will never be changed as we have developed it. So any ideas or workaround to detect a process is running or not, based on the process description? Thanks

#realJSOP

Нет - вы не можете сделать это по описанию. Поскольку вы должны делать это по имени, мой совет-дать вашему приложению имя, которое начинается с известного префикса, чтобы имя исполняемого файла выглядело примерно так: "myapp_is56.exe", а затем вы можете искать процессы, которые начинаются с "myapp_is" или что-то в этом роде.