Вы можете попробовать это (который pinvoke хорошо покрыл):
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function GetWindowText(ByVal hwnd As IntPtr, ByVal lpString As StringBuilder, ByVal cch As Integer) As Integer
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function GetWindowTextLength(ByVal hwnd As IntPtr) As Integer
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim length As Integer = GetWindowTextLength(otherAppLabelHandle)
Dim sb As New StringBuilder(length + 1)
GetWindowText(otherAppLabelHandle, sb, sb.Capacity)
MessageBox.Show(sb.ToString())
End Sub