CreateProcessについて

解決


けい  2005-01-14 19:06:42  No: 56001

CreateProcessを使ってプログラムで起動した
××.exeファイルのIDは取れたのですが、
××.jarのプロセスIDが上手くとれません。
何か上手く取ることのできる方法はありませんでしょうか?

最終的には起動したアプリケーションが終了するまで
プログラムをWaitForSingleObjectで待機させておきたいので
IDを取りたいのです。


けい  2005-01-14 19:11:12  No: 56002

開発環境は
Windows2000
VC++.Netです


九条  2005-01-14 21:09:19  No: 56003

うまく取れないとはどのような状況ですか?
CreateProcess の引数の最後のPROCESS_INFORMATION dwProcessId が
不正な値ということでしょうか?
CreateProcess が成功しているかどうかは確認しましたか?
そもそもjarファイルってJavaのアーカイブで、それ単独では起動しないもの
だと思うのですが……

なんにせよ、CreateProcess前後のソースや、具体的に発生している
状況が不明の為、これではどなたも答えられないと思います。


YuO  2005-01-14 21:20:28  No: 56004

> CreateProcessを使ってプログラムで起動した
> ××.exeファイルのIDは取れたのですが、
> ××.jarのプロセスIDが上手くとれません。
> 何か上手く取ることのできる方法はありませんでしょうか?

CreateProcessはあくまで実行可能ファイルを実行してプロセスを生成します。
関連付けによるデータファイルの(疑似)実行はシェルの機能ですから,
ShellExecute(Ex)を使うか,FindExecutableで関連付けられた実行可能ファイルを取得する必要があります。

> 最終的には起動したアプリケーションが終了するまで
> プログラムをWaitForSingleObjectで待機させておきたいので
> IDを取りたいのです。

であれば,ShellExecuteExでプロセスハンドルを取得できれば十分かと。


けい  2005-01-14 22:55:15  No: 56005

返信ありがとうございます
ShellExecuteは以前使っていたのですがExの方はスルーしてました^^;
ShellExecuteExを使い完成させることが出来ました。
どうもありがとうございました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加