Qt 找不到具有注入代码的第三方QWidget&;QWidget::查找(hwnd)

Qt 找不到具有注入代码的第三方QWidget&;QWidget::查找(hwnd),qt,dll,hook,code-injection,qwidget,Qt,Dll,Hook,Code Injection,Qwidget,我在第三方地址空间中有一个dll,使用cbt钩子钩住。但是,当我尝试这样做时: HWND hwnd = FindWindow(wct_target_wnd); QWidget* widget = QWidget::find(hwnd); if(widget != 0) { MessageBox(NULL, L"worked\n",NULL, NULL); } 我知道小部件在那里,hwnd是正确的,我只是似乎找不到指向它的指针 根据我读到的所有信

我在第三方地址空间中有一个dll,使用cbt钩子钩住。但是,当我尝试这样做时:

HWND hwnd = FindWindow(wct_target_wnd);
    QWidget* widget = QWidget::find(hwnd);
    if(widget != 0) 
    {
        MessageBox(NULL, L"worked\n",NULL, NULL);
    }
我知道小部件在那里,hwnd是正确的,我只是似乎找不到指向它的指针

根据我读到的所有信息,这应该是可行的,但它总是返回零,有人能解释为什么吗

c++visual studio-2008


谢谢。

如何使用QApplication,获取所有窗口小部件的列表,然后检查它们各自的窗口ID

差不多

foreach (QWidget *widget, QApplication::allWidgets())
{
     if(widget->winId() == hwnd)
     {
         MessageBox(NULL, L"worked\n",NULL, NULL);
     }
}

这似乎是个好主意:)我试过了,但结果是空的。我认为这是该项目的设立方式。我有我的.dll,它拥有到QtCore4和QtGui4 dll的所有连接,然后将其推送到第三方应用程序中。我想他们每个人都在使用自己版本的dll,这就是为什么我找不到他们,这听起来对吗对qt来说是全新的。@flavour404:很可能是这样。如果你有两个相同DLL的实例,你也会得到每个静态变量的两个实例,包括QApplication的实例。Frank,实际上我如何测试它,以便我可以确认这实际上是出了问题的地方?