サンプル投稿用掲示板 VB2005 〜 用トップページ VB6.0 用 トップページ
- 日時: 2007/07/15 20:16
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[他のアプリ関係][][] * * キーワード:他のアプリを終了させる,他のEXE,アプリケーション,リモート操作,, * ***********************************************************************************
-------------------------------------------------------------------------------- No.475 RE:No.315 ウインドウを閉じる 投稿者:たくボン [1999/06/09(水)0:43分] --------------------------------------------------------------------------------
プロジェクトにフォーム・標準モジュールを追加します。 フォームにテキストとコマンドボタンを貼りつけて実行して下さい。 テキストに入力した文字列を持つウインドウにWM_QUITを送ります。
'----- Form1.frm ---------------------------------------------------------------- Private Sub Command1_Click() Dim bolRetVal As Boolean strTargetWindowText = Text1.Text bolRetVal = EnumWindows(AddressOf QuitTargetWindow, 0&) End Sub
'----- End of File -------------------------------------------------------------
'----- Module1.bas ------------------------------------------------------------- '終了メッセージ Public Const WM_QUIT = &H12 'ウインドウテキスト取得 Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hwnd As Long, _ ByVal lpString As String, ByVal cch As Long) As Long 'ウインドウの列挙 Declare Function EnumWindows Lib "user32" _ (ByVal lpEnumFunc As Long, lParam As Any) As Long 'ウインドウの可視状態の取得 Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long 'ウインドウにメッセージを送る Declare Function PostMessage Lib "user32" Alias "PostMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long '親ウインドウを取得 Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long '終了させる画面のタイトル Public strTargetWindowText As String 'バッファサイズ Const DEF_BUFF_MAX = 256
'EnumWindowのコールバック関数 Public Function QuitTargetWindow(ByVal hwnd As Long, lParam As Long) As Boolean Dim lngRetVal As Long Dim hParent As Long Dim sBuff As String If IsWindowVisible(hwnd) = &H0& Then hParent = GetParent(hwnd) 'ウインドウタイトルを取得 sBuff = String(DEF_BUFF_MAX, 0) lngRetVal = GetWindowText(hParent, sBuff, DEF_BUFF_MAX) If lngRetVal <> 0 Then If strTargetWindowText = Left$(sBuff$, InStr(sBuff, Chr(0)) - 1) Then '該当するウインドウの場合は終了メッセージを通知する lngRetVal = PostMessage(hParent, WM_QUIT, &H0&, &H0&) End If End If End If QuitTargetWindow = True End Function '----- End of File -------------------------------------------------------------
|