Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10142 / 76734 ←次へ | 前へ→

【72144】Re:開いていいるWindowの名前(caption)の取得
発言  UO3  - 12/6/7(木) 21:55 -

引用なし
パスワード
   ▼亜矢 さん:

結構ややこしいけど。
ネットから拾い集めて書いたコードです。
Sheet1 の A列にウィンドウハンドル、B列にクラスコード、C列のキャプションを列挙。

Option Explicit

Private Declare Function GetWindow Lib "USER32" _
  (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "USER32" _
  Alias "GetWindowTextA" (ByVal hWnd As Long, _
  ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function IsWindowVisible Lib "USER32" _
  (ByVal hWnd As Long) As Long
Private Declare Function GetClassName Lib "USER32" _
  Alias "GetClassNameA" (ByVal hWnd As Long, _
  ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  
Private Const GW_HWNDNEXT = 2  '次のウィンドウハンドル取得
Private Const GW_HWNDFIRST = 0 'トップ位置ウィンドウハンドル取得
Private Const GW_OWNER = 4   'オーナーウィンドウハンドル取得

Sub Sample()
  Dim myhWnd As Long
  Dim hWind As Long
  Dim rtn As Long
  Dim myClass As String * 128
  Dim myCaption As String * 128
  Dim i As Long
  
  i = 1
  Sheets("Sheet1").Cells.ClearContents
  
  myhWnd = Application.hWnd  '自分自身のハンドル
  
  hWind = GetWindow(myhWnd, GW_HWNDFIRST)
  Do Until hWind = 0
    If IsWindowVisible(hWind) And GetWindow(hWind, GW_OWNER) = 0 Then 'タスクバーにあるもの
      myClass = ""
      Call GetClassName(hWind, myClass, Len(myClass))
      If Left$(myClass, 7) <> "Progman" Then
        myCaption = ""
        rtn = GetWindowText(hWind, myCaption, Len(myCaption))
        If rtn Then   'キャプションが "" でない場合
          With Sheets("Sheet1")
            .Cells(i, "A").Value = hWind   'ハンドル
            .Cells(i, "B").Value = myClass  'クラス名
            .Cells(i, "C").Value = myCaption  'キャプション
            i = i + 1
          End With
        End If
      End If
    End If
    hWind = GetWindow(hWind, GW_HWNDNEXT)
  Loop
  
End Sub

2 hits

【72142】開いていいるWindowの名前(caption)の取得 亜矢 12/6/7(木) 21:16 質問
【72144】Re:開いていいるWindowの名前(caption)の... UO3 12/6/7(木) 21:55 発言
【72146】Re:開いていいるWindowの名前(caption)の... 亜矢 12/6/8(金) 6:48 お礼
【72168】Re:開いていいるWindowの名前(caption)の... 亜矢 12/6/13(水) 10:40 質問
【72169】Re:開いていいるWindowの名前(caption)の... ちび坊主 12/6/13(水) 12:32 回答
【72171】Re:開いていいるWindowの名前(caption)の... 亜矢 12/6/13(水) 13:48 お礼
【72170】Re:開いていいるWindowの名前(caption)の... UO3 12/6/13(水) 12:59 発言
【72172】Re:開いていいるWindowの名前(caption)の... 亜矢 12/6/13(水) 13:59 お礼

10142 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free