Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;HexChat SendMessage get Chat_C++_Sendmessage - Fatal编程技术网

C++ C++;HexChat SendMessage get Chat

C++ C++;HexChat SendMessage get Chat,c++,sendmessage,C++,Sendmessage,我以前在VisualBasic中做过类似的事情,但那是很久以前的事了,是为Wolfenstein等人做的。我知道我将不得不使用SendMessage或WM_GETTEXT,所以我需要的只是代码,它将不断地从聊天窗口获取文本。现在hexchat是开源的,但我不知道如何进行,如何获取需要指定的ID。我宁愿不使用句柄,因为每次都要重新编译它。我知道这要求很多,但在过去的几天里,我一直在努力解决这个问题,但没有成功。非常感谢您的帮助!谢谢 Oops还忘了提到,既然HexChat是开源的,我们应该能够使用

我以前在VisualBasic中做过类似的事情,但那是很久以前的事了,是为Wolfenstein等人做的。我知道我将不得不使用SendMessage或WM_GETTEXT,所以我需要的只是代码,它将不断地从聊天窗口获取文本。现在hexchat是开源的,但我不知道如何进行,如何获取需要指定的ID。我宁愿不使用句柄,因为每次都要重新编译它。我知道这要求很多,但在过去的几天里,我一直在努力解决这个问题,但没有成功。非常感谢您的帮助!谢谢

Oops还忘了提到,既然HexChat是开源的,我们应该能够使用GetDlgItem()吗

#定义WIN32_LEAN_和_MEAN
#包括
#包括
使用名称空间std;
void findExchat()
{
HWND hwndNotepad=FindWindow(L“gdkWindowToplevel”,NULL);
如果(NULL!=hwndNotepad)
{
HWND hwndEdit=FindWindowEx(hwnnotepad,NULL,L“Chat”,NULL);
如果(NULL!=hwndEdit)
{
int textLen=(int)SendMessage(hwndEdit,WM_GETTEXTLENGTH,0,0);
如果(0您要查找的窗口ID可以通过源代码或Spy++确定。每个子窗口HWND都由EnumChildWindows返回。对于每个子窗口HWND,您可以调用GetWindowLong(HWND,GWL_ID)获取子窗口的ID。当它与目标ID匹配时,您已经找到了可以与WM_GETTEXT一起使用的HWND来读取窗口的文本。

开源与使用
GetdGitem
有什么关系?请注意,还有
GetWindowText
GetWindowTextLength
。您没有得到
GetdGitem吗来自源代码?如果不是,您是如何获得它的?我还通过spy++查看了hexchat,唯一命名的窗口是顶层。下面的所有内容都是
“”
你会怎么做?嗯,
EnumChildWindows
会得到所有的。这取决于你有多少独特的信息。好吧,我运行了一些代码,它返回了所有的子窗口,但它们看起来像句柄。我要测试每一个吗?如果是这样,我会怎么做?如果每个子窗口都没有som一段特定的信息,可以区分你需要的信息和其他信息,并且你可以识别,然后你必须找到正确的控制,就像你说的那样。如果它可以通过来源确定,那么我如何找到它?:我几乎搜索了整件事,没有找到任何突出的东西.如果你能看一下,我会非常感激的!嗯…我想添加一些东西来帮助我找到它,但我找不到任何在线论坛做过类似的事情。
#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;
}