実行中のアプリを検知する方法


ようちゃん  2005-11-17 08:16:00  No: 127803

いつもありがとうございます.

先日質問させていただき、下記のプロシージャを組みました.

API参照
Private Declare Function GetExitCodeProcess Lib "kernel32.dll" _
   (ByVal hProcess As Long, _
    lpExitCode As Long) As Long

Private Declare Function CloseHandle Lib "kernel32.dll" _
   (ByVal hObject As Long) As Long
   
Const PROCESS_QUERY_INFOMATION = &H400&
Const STILL_ACTIVE = &H103&

--------------------------------------------------------------------------------------------
'プロシージャ内

    Dim lngTaskID       As Long
    Dim lngProcHandle   As Long
    Dim lngExitCode     As Long
    Dim lngReturnCode2  As Long
    Me.Enabled = False
    
    lngTaskID = Shell("AAA", vbNormalFocus)

'実はここでAAAのプログラムがBBBのプログラムを起動しています。
'このBBBのプログラムの終了を検知したいのですが・・・
'Shellではなく、プロセスを監視するような命令はありますか?

    lngProcHandle = OpenProcess(PROCESS_QUERY_INFOMATION, 1, lngTaskID)
    Do
        lngReturnCode2 = GetExitCodeProcess(lngProcHandle, lngExitCode)
        DoEvents
    Loop While lngExitCode = STILL_ACTIVE
    
    CloseHandle lngProcHandle
    
よろしくお願いします.
ちなみに、BBBのプログラムが立ち上がったときタスクマネージャには表示されています.


あん  2005-11-17 13:10:38  No: 127804

質問することを整理したほうがいいかと
意味がわかりません

>'Shellではなく、プロセスを監視
??

でその後の
>   lngProcHandle = OpenProcess(PROCESS_QUERY_INFOMATION, 1, lngTaskID)
>    Do
>        lngReturnCode2 = GetExitCodeProcess(lngProcHandle, lngExitCode)
>        DoEvents
>    Loop While lngExitCode = STILL_ACTIVE
>    
>    CloseHandle lngProcHandle
??

何がいいたいの?


ひろ  2005-11-17 17:40:24  No: 127805

案1:AAAを改造  (BBBが終了するまで待ってから終了する)
案2:BBBを直接起動


もげ  2005-11-17 18:02:22  No: 127806

案3:http://www.galliver.co.jp/writing/msdn/msdn15/
案4:WMI のWin32_Process


通ってみた  2005-11-17 18:14:27  No: 127807

案5:BBB終了時にAAAに終了の旨をセンドメッセージさせる


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




  


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