Вернуть идентификатор процесса - PullRequest
1 голос
/ 12 марта 2009

У меня есть проблема, которую я хочу решить. Давайте думать, что у нас такая ситуация. У нас работает один экземпляр notepad.exe. Я запускаю другой notepad.exe. Теперь я хочу убить последнего. Как я могу это сделать?

Если бы я мог знать pid последнего notepad.exe, я мог бы его убить. Но как получить PID последней открытой программы?

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

Так есть идеи?

P.S. Как вы уже заметили, это все в Windows.

Ответы [ 2 ]

1 голос
/ 12 марта 2009

Если это чужие процессы (то есть вы сами их не запускали), то Windows отслеживает , когда процесс был запущен (или его " время создания ") , так что я ожидаю, что вы можете просто найти тот процесс, который был запущен последним, используя эту информацию.

0 голосов
/ 12 марта 2009

Ну, как вы запускаете процесс? Например, если вы запускаете его из C #, статический метод Process.Start возвращает экземпляр Process, который имеет метод Id и Kill(). Механизм будет отличаться между архитектурами / языками ...

И если вы не делаете это через код, это может быть не по теме; -p

...