掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
別アプリを操作するには (ID:105713)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
基本的には、次のような感じかな。 API の宣言、定数の宣言は省いています。 Private Sub Command1_Click() Const WINDOW_NAME As String = "XYZ" '* フォームのキャプション Const BUTTON_NAME As String = "実行" '* ボタンのキャプション Dim hWnd As Long Dim hChild As Long Dim sWndText As String Dim lRet As Long '* ウィンドウを取得 hWnd = FindWindow(vbNullString, WINDOW_NAME) '* ウィンドウがない場合は、終了 If hWnd = 0 Then Exit Sub '* 子ウィンドウを取得 hChild = GetWindow(hWnd, GW_CHILD) '* 子ウィンドウがなくなるまで繰り返す Do While hChild <> 0 '* ウィンドウのテキストを取得 sWndText = Space(256) lRet = GetWindowText(hChild, sWndText, Len(sWndText)) If lRet = 0 Then GoTo L_NEXT lRet = InStr(sWndText, vbNullChar) If lRet = 0 Then GoTo L_NEXT sWndText = Trim(Left(sWndText, lRet - 1)) '* 現在の子ウィンドウが対象のものでなければ、次へ If sWndText <> BUTTON_NAME Then GoTo L_NEXT '* 現在の子ウィンドウをアクティブに設定 ' (設定しないと次の BM_CLICK メッセージが無視される場合がある) SendMessage hChild, WM_ACTIVATE, 1, ByVal 0& '* 現在の子ウィンドウにクリックメッセージを送信 SendMessage hChild, BM_CLICK, 0, ByVal 0& L_NEXT: '* 弟ウィンドウを取得 hChild = GetWindow(hChild, GW_HWNDNEXT) Loop End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.