2009-05-25 8 views
1

私はプロセスに全く慣れていませんが、私が設定していることは本当に簡単なはずです。 私はすべてがこのようにプロセスを生成しますspawnvを使って作成したプロセスを終了する

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

は今、私がやりたいことは、一定時間後にこのプログラムを殺すです。しかし、返されたspawnIdは、taskkill /PID [number] /Fを呼び出すときに必要なものではありません。

私はotherId2 = GetWindowThreadProcessId((HWND)spawnId,OUT otherId1)を使用しようとしましたが、otherId1otherId2も正しいPIDを返していません。

もし誰かが私を助けてくれたら、私は感謝しています。 よろしく、 ロアルド

答えて

1

From MSDN

非同期_spawnv又は_wspawnv_P_NOWAIT又はモードに指定_P_NOWAITO)からの戻り値は、プロセス・ハンドルです。

プロセスハンドルがある場合、TerminateProcessを使用できます。

ハンドルの種類は交換できません。プロセスハンドルをタイプキャストしてHWNDにキャストできず、それが突然ウィンドウハンドルになることはありません。