Webでもここでも調べましたが、私と同じ悩みを持っている人は見たことがありません。
AutoIt ウィンドウ情報ツールを使用して、別のアプリケーション ラベル (静的) ID を取得します。AutoIt ウィンドウ情報ツールは、そのコントロール (ラベル) の ID を教えてくれます。したがって、次のコードを使用してそのテキストを取得できます。
For Each pr As Process In Process.GetProcessesByName("AnotherAppExeName")
Dim sb as New StringBuilder
sb.Capacity = 500
GetDlgItemText(pr.MainWindowHandle, 1044, sb, sb.Capacity)
'1044 Is the ID of another application's label
'I print the string:
MessageBox.Show(sb.ToString)
Next
これは機能します。別のアプリケーションからコントロール (id:1044) のテキストを取得できます。しかし、他のアプリケーションには多くのラベルがあり、ID が 1044 のものしか取得できません。たとえば、1043 ID の別のラベルがありますが、同じものを適用すると、空の文字列が返されます。
これを解決するにはどうすればよいですか?
AutoIt ウィンドウ情報ツールの画面: