指定されたウィンドウハンドルの名前を取得する(GetWindowText)
user32.dll の GetWindowText を用いて、ウィンドウハンドルの名前を取得します。
サンプルのダウンロード
■サンプルの説明

起動すると、こんな画面が表示されます。自アプリケーション・他アプリケーション問わず、マウスポインタの位置のウィンドウのテキストを取得します。
■コード
F0009_GetWindowText.vb
Imports System.Runtime.InteropServices ''' <summary> ''' GetWindowText(user32.dll) ''' </summary> Partial Public Class F0009_GetWindowText ''' <summary> ''' GetWindowText(指定されたウィンドウハンドルの名前を取得)の宣言 ''' </summary> <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function GetWindowText(ByVal hwnd As IntPtr, _ ByVal lpString As System.Text.StringBuilder, _ ByVal cch As Integer) _ As Integer End Function ''' <summary> ''' GetWindowTextLength ''' (指定されたウィンドウのタイトルバーテキストの文字数を取得)の宣言 ''' </summary> <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function GetWindowTextLength(ByVal hwnd As IntPtr) _ As Integer End Function ''' <summary> ''' WindowFromPoint(指定された座標を含むウィンドウのハンドルを取得)の宣言 ''' </summary> <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function WindowFromPoint(ByVal lpPoint As POINT) _ As IntPtr End Function ''' <summary> ''' GetCursorPos(マウスの座標を取得)の宣言 ''' </summary> <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function GetCursorPos(ByRef lpPoint As POINT) _ As Boolean End Function ''' <summary> ''' POINT 構造体 ''' </summary> Private Structure POINT Public X As Integer Public Y As Integer End Structure ''' <summary> ''' ロード時のイベント ''' </summary> Private Sub F0009_GetWindowText_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.Text = "F0009_GetWindowText" Me.Label1.Text = "" Me.Label2.Text = "" Me.Timer1.Interval = 100 Me.Timer1.Start() End Sub ''' <summary> ''' 指定したタイマの間隔が経過した時のイベント ''' </summary> Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim lpPoint As POINT 'マウス座標を取得 GetCursorPos(lpPoint) Me.Label1.Text = "X:" + lpPoint.X.ToString() + " Y:" + lpPoint.Y.ToString() 'マウス座標よりハンドル取得 Dim hwnd As IntPtr hwnd = WindowFromPoint(lpPoint) If hwnd.ToInt32() <= 0 Then 'ハンドル取得失敗 Me.Label2.Text = "" Exit Sub End If 'タイトルバーの文字数取得 Dim length As Integer = GetWindowTextLength(hwnd) If length <= 0 Then Exit Sub End If 'タイトルバーの文字取得 Dim lpStringBuf As System.Text.StringBuilder lpStringBuf = New System.Text.StringBuilder("", length + 1) GetWindowText(hwnd, lpStringBuf, lpStringBuf.Capacity) Me.Label2.Text = lpStringBuf.ToString() End Sub End Class