Excel VBA質問箱 IV

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

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


10122 / 76738 ←次へ | 前へ→

【72168】Re:開いていいるWindowの名前(caption)の取得
質問  亜矢  - 12/6/13(水) 10:40 -

引用なし
パスワード
   ▼UO3 さん:
>▼亜矢 さん:
>
>結構ややこしいけど。
>ネットから拾い集めて書いたコードです。
>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
先日上記のコードをいただき一つの目的が達成しましたが、印刷プレビューとか他の子の取得が出来ないと思われますので、子のCaptionが取得できるような方法を
教えて頂きたいと思います。
 よろしくお願いします。

0 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 お礼

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