外部アプリケーションを終了させる
<Windowsメッセージを送る>
宣 言 |
(Private) Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) |
引 数 説 明 |
hWnd |
Long |
メッセージを受け取るウィンドウハンドル(つまりここでは、終了させたいアプリケーションのウィンドウハンドル) |
wMsg |
Long |
メッセージの識別子(アプリケーションの終了ならば&H10を指定) |
wParam |
Long |
メッセージの内容によって異なる(アプリケーションの終了ならば0を指定) |
lParam |
Long |
メッセージの内容によって異なる(アプリケーションの終了ならば0を指定) |
サ ン プ ル プ ロ グ ラ ム |
プログラムを張りつけ実行し、終了させたいアプリケーションをアクティブにしてください。そして「Ctrlキー」+「Qキー」で終了させます。
動作確認:Visual Basic 5.0,Windows98
VB 4.0でも問題なく動作するでしょう。
Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Private Declare Function GetForegroundWindow& Lib "user32" () Private Sub Form_Load() Form1.Show Dim a As Integer Dim Fgw As Long Do Do DoEvents Loop Until GetAsyncKeyState(17) < 0 And GetAsyncKeyState(81) < 0 Fgw = GetForegroundWindow SendMessage Fgw, &H10, 0, 0 Form1.Caption = "ウィンドウハンドル" & Str$(Fgw) & "を終了しました" Loop While a = 0 End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) End End Sub |