我正在创建一个补充第三方应用程序中提供的数据的应用程序。他们没有开放的API,因此我一直强制使用WM_GETTEXT来获取我们正在查看的信息。这适用于窗口标题,但我需要在屏幕上找到一个唯一标识符的一些窗口。如果我点击或标签框我需要我得到文本。如果我不这样做,它只返回空白。
这是非常简单的代码,如果必须的话,我可以用c ++编写一个包装器,虽然我现在不想这样做(我想我以后会因为性能原因而不得不现在我只是想尝试确定以后完整申请所需的所有信息
StringBuilder sb = new StringBuilder(1024);
length = SendMessage(hWnd, WM_GETTEXTLENGTH, IntPtr.Zero, IntPtr.Zero);
int successText = (int)SendMessage(hWnd, WM_GETTEXT, (IntPtr)sb.Capacity, sb);
我尝试过发送一堆tab键,但即使使用keybd_event,也需要大约一整秒才能遍历所有44个字段,回到起始字段,这是不可接受的。
如果有任何帮助,原始应用程序是90年代晚期的powerbuilder应用程序。