APIに関連した質問ばかりですみません。
下のループでウィンドウテキストがConsoleに正常に出ないのですが
どこに原因があるでしょうか?
ループの上に一時停止を設定して、F10を押して一つずつ表示させると出るのですが・・・
早すぎるのが原因のような感じですが、SendMessageは瞬時に次のものは使ってはダメでしょうか?
EnumChildWindow()の使い方が不慣れで共有変数の扱いとかが分からないので
このような方法で列挙してみました。
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA"
  (ByVal hWnd As IntPtr, ByVal wMsg As Integer,
   ByVal wParam As Integer, ByVal lParam As String) As Integer
Public Const WM_GETTEXT = &HD
Dim OYA As IntPtr
Dim ko As IntPtr
Dim mago As IntPtr
Dim WindowTitle As String = "テストフォーム"
OYA = FindWindow(vbNullString, WindowTitle)
ko = FindWindowEx(OYA, IntPtr.Zero, vbNullString, vbNullString)
Console.WriteLine(ko.ToInt32)
If ko.ToInt32 = 0 Then Exit Sub
Dim a As String= New String(Chr(0), 255)
Dim leng As Integer = Len(a)
Do Until (ko.ToInt32 = 0)
 mago = FindWindowEx(OYA, ko, vbNullString, vbNullString)
 SendMessage(mago, WM_GETTEXT, leng, a)
 Console.WriteLine(a.ToString)
 Console.WriteLine(mago.ToInt32)
 ko = mago
Loop