tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 外部のアプリを起動して終了させてもタスクバーのアイコンが消えない
投稿日: 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)

-------------------------------------------------------------------------------

以上です。
どうぞよろしくお願いいたします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。