tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル外部アプリケーションの終了
記事No13636
投稿日: 2009/05/01(Fri) 14:25
投稿者ganchan
OS:Windows2000  Ver:6.0   よろしくお願いします。
現在Form上にListViewを貼り付け、ListView内にファイル名とそのファイルのアイコンを表示し
(エクスプローラみたいなもの)アイコンをダブルクリックしたらShell関数でアイコンのファイル
を起動するプログラムを作りました。Shell関数から取得したProcessIDとファイル名を基に、
Form_UnLoad時にShell関数で起動したファイルが放置の確認をEnumWindowsを使って、先に取得したProcessIDと現在起動中の外部アプリケーションのProcessIDと突合せ、WindowsHandleが取得できれば何もしない。取得できれば放置状態としてOpenProcess、GetExitCodeProcess、TerminateProcess、CloseHandleを使って終了させています。ProcessIDは起動中のアプリケーションではユニークなのですが、操作を行っている人が終了させた場合に、その後他のアプリケーションを立ち上げ、終了させたアプリケーションのProseccIDとその後立ち上げたアプリケーションの
PocessIDが一致した場合は、私が作ったプログラムを終了させると間違ったアプリケーションを終了させることになります。ここでご意見をお聞きしたいのですが、ここまで考えなくていいのでしょうか、よろしくお願いします。

[ツリー表示へ]
タイトルRe: 外部アプリケーションの終了
記事No13637
投稿日: 2009/05/01(Fri) 15:48
投稿者K.J.K.
GetProcessTime あたりを使って、その Process の作成時刻も控えておくとか。

[ツリー表示へ]
タイトルRe^2: 外部アプリケーションの終了
記事No13638
投稿日: 2009/05/01(Fri) 18:45
投稿者ganchan
> GetProcessTime あたりを使って、その Process の作成時刻も控えておくとか。

K.J.K.さん、投稿ありがとうございます。
早速、GetProcessTimeを使って見ました。うまくいきました。すっきりしました。
どうもありがとうございます。   

[ツリー表示へ]