C++ HexChat 发送消息获取聊天
C++ HexChat SendMessage get Chat
我以前在Visual Basic中做过这样的事情,但那是很久以前的事了,它是为Wolfenstein ET做的。我知道我将不得不使用 SendMessage 或WM_GETTEXT所以我所需要的只是不断从聊天窗口中获取文本的代码。现在 hexchat 是开源的,但我不知道如何去做并获取需要指定的 ID。我宁愿不使用句柄,因为我每次都必须重新编译它。我知道这要求很多,但过去几天我一直在试图解决这个问题,但没有成功。任何帮助将不胜感激!谢谢!
哎呀还忘了提到,既然HexChat是开源的,我们应该能够使用GetDlgItem()吗?
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <iostream>
using namespace std;
void FindHexChat()
{
HWND hwndNotepad = FindWindow(L"gdkWindowToplevel", NULL);
if (NULL != hwndNotepad)
{
HWND hwndEdit = FindWindowEx(hwndNotepad, NULL, L"Chat", NULL);
if (NULL != hwndEdit)
{
int textLen = (int)SendMessage(hwndEdit, WM_GETTEXTLENGTH, 0, 0);
if (0 < textLen)
{
const int bufferSize = 1024;
char textBuffer[bufferSize] = "";
SendMessage(hwndEdit, WM_GETTEXT, (WPARAM)bufferSize, (LPARAM)textBuffer);
<< cout << textBuffer << endl;
}
else
{
}
}
else
{
}
}
else
{
endl;
}
}
int main()
{
FindHexChat();
return 0;
}
您要查找的窗口的 ID 可以从源代码或使用 Spy++ 确定。 每个子窗口 HWND 都由 EnumChildWindows 返回。对于每个 HWND,您可以调用 GetWindowLong(hwnd, GWL_ID) 来获取该子窗口的 ID。当它与目标 ID 匹配时,您找到了可以与WM_GETTEXT一起使用以读取窗口文本的 HWND。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 具有默认值的引用获取函数
- xmake总是报告:错误:无法获取cxx的程序,为什么
- C++ HexChat 发送消息获取聊天