タイトル : 外部のアプリを起動して終了させてもタスクバーのアイコンが消えない 投稿日 : 2013/04/04(Thu) 15:51 投稿者 : e=mc2
マウスを制御する外部アプリーケーションを起動して、プログラム終了時に強制終了させていますが、このアプリケーションがタスクバーに常駐型で、終了はするのですが、アイコンが残ったままとなってしまいます。マウスをタスクバーに持っていくとアイコンが消えますが、そのままにしていると起動するたびにアイコンが増えていきます。タスクバーのアイコンを消す方法をお教えいただけないでしょうか。 使用しているサンプルソースです。 ------------------------------------------------------------------------------- '標準モジュール Option Explicit ' OpenProcess 関数 Public Declare Function OpenProcess Lib "KERNEL32.DLL" ( _ ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long _ ) As Long ' CloseHandle 関数 Public Declare Function CloseHandle Lib "KERNEL32.DLL" ( _ ByVal hObject As Long _ ) As Long ' TerminateProcess 関数 Public Declare Function TerminateProcess Lib "KERNEL32.DLL" ( _ ByVal hProcess As Long, _ ByVal uExitCode As Long _ ) As Long ' 定数の定義 Public Const SYNCHRONIZE As Long = &H100000 Public Const PROCESS_TERMINATE As Long = &H1 ------------------------------------------------------------------------------- アプリ起動: 'test.exeを起動して、プロセス ID を取得する Dim lProcessId As Long lProcessId = CLng(Shell("test.exe", vbNormalFocus)) ' プロセスのハンドルを取得する Dim hProcessHandle As Long hProcessHandle = OpenProcess(SYNCHRONIZE Or PROCESS_TERMINATE, 0&, lProcessId) ------------------------------------------------------------------------------- プログラム終了時: 'test.exeを強制終了する Call TerminateProcess(hProcessHandle, 0&) 'プロセスのハンドルを閉じる Call CloseHandle(hProcessHandle) ------------------------------------------------------------------------------- 以上です。 どうぞよろしくお願いいたします。 |