Завершение процесса, созданного с помощью spawnv - PullRequest
1 голос
/ 25 мая 2009

У меня совсем нет опыта работы с процессами, но то, на что я настроен, должно быть действительно простым. Все, что я делаю, это порождаю такой процесс:

int spawnId = spawnv(_P_NOWAIT,"wgetlocal.exe",my_env);

Теперь я хочу убить эту программу через определенное время. Однако возвращаемый spawnId не тот, который мне нужен, когда, например, вызывается taskkill /PID [number] /F.

Я пытался использовать otherId2 = GetWindowThreadProcessId((HWND)spawnId,OUT otherId1), но опять же, ни otherId1, ни otherId2 не дают правильный PID.

Если бы кто-нибудь мог помочь мне с его, я бы очень поблагодарил. С Уважением, Роальд

1 Ответ

1 голос
/ 25 мая 2009

От MSDN :

Возвращаемое значение из асинхронного _spawnv или _wspawnv (_P_NOWAIT или _P_NOWAITO, указанное для режима) является дескриптором процесса.

Если у вас есть дескриптор процесса, вы можете использовать TerminateProcess.

Типы ручек не являются взаимозаменяемыми. Нельзя привести тип дескриптора процесса к HWND, и он внезапно станет дескриптором окна.

...