tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
指定のウィンドウを閉じる(VB6.0) ( No.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 -------------------------------------------------------------



 [スレッド一覧へ] [親スレッドへ]