c - EM_GETLINE 错误 C++ 从文本框获取最后一行

标签 c winapi

我在使用 EM_GETLINE 时遇到了一个小问题。 我有一个文本框,我想从中提取文本。该框一直在更新(这是一个不断更新的日志文件,最后一条消息在底部)。 我只想要最后一行。

我的代码:

        HWND hwnd = (HWND)0x00020A72;
 TCHAR param[1000];
 char display[1000];
 LONG lResult;
 lResult = SendMessage( hwnd, WM_GETTEXT, 500, (LPARAM)param);
 //lResult = SendMessage( hwnd, EM_STREAMOUT, SF_RTF, (LPARAM)param);
 //lResult = SendMessage( hwnd, EM_GETLINE, 1, (LPARAM)param); 
 wcstombs(display, param, 1000);

 printf( " %s\n", display );

如您所见,我已经尝试了 WM_GETTEXT(有效)。使用 GETLINE 时,它编译良好 (VS2010express) 但返回垃圾。

非常感谢您的帮助。 感谢收听。

最佳答案

这个窗口属于另一个进程,对吧?我可以看到您对窗口句柄进行了硬编码。不太确定消息是否会跨进程边界自动编码,只有系统消息是 (WM_Xxx < 0x400)。

自己编码需要 OpenProcess、VirtualAllocEx 分配缓冲区、WriteProcessMemory 初始化它、SendMessage、ReadProcessMemory 读取缓冲区。加上清理。

关于c - EM_GETLINE 错误 C++ 从文本框获取最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3634298/

相关文章:

winapi - 如何从 Powershell 事件订阅者操作​​设置前景窗口

c++ - 我对吗 &str[0] 指向 len + 1 大小的缓冲区,包括空终止字符

c - 任务分解

C反向字符串函数得到奇怪的输出

c - 如何根据用户输入生成随机数但不重复且在一定范围内?

c - 文件内容排序

windows - 为什么讲述人不将自己报告为 Windows 的屏幕阅读器?