Как получить PID IRunningTask (библиотека планировщика задач 2.0) - PullRequest
3 голосов
/ 24 декабря 2010

Я запустил задачу, используя IRegisteredTask.Run(), и получил IRunningTask объект.

Моя цель - сфокусировать главное окно запущенной задачи с помощью функции SetForegroundWindow.

Сначала я хочучтобы узнать PID (идентификатор процесса) запущенной задачи.

Существует свойство IRunningTask.EnginePID, но оно дает мне PID какого-то taskeng.exe процесса (Task Scheduler Engine), это не моя задача...

Как получить PID IRunningTask?

Ответы [ 2 ]

0 голосов
/ 03 января 2011

Разве вы не можете получить его с помощью IRunningTask.InstanceGuid (а затем пройти через TaskScheduler.IRegisteredTaskCollection)?

- отредактировано для полноты -

Поскольку ваша конечная цель - получитьСама задача, вы можете сделать это, используя уникальный GUID внутри коллекции задач движка.

0 голосов
/ 30 декабря 2010

Вы правы. Интерфейс IRegisteredTask не предоставляет свойство PID.

Если вам действительно нужен PID, вам может потребоваться использовать свойства .Path и .Name объекта IRegisteredTask и перечислить текущие запущенные процессы, которые ищут совпадение. Когда вы найдете текущий запущенный процесс, который имеет тот же путь и имя, что и ваш IRegisteredTask, вы можете получить PID. Это не красиво, но это должно сработать.

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