1

cbt フックを使用してフックされたサードパーティのアドレス空間に dll があります。ただし、これを試してみると:

HWND hwnd = FindWindow(wct_target_wnd);
    QWidget* widget = QWidget::find(hwnd);
    if(widget != 0) 
    {
        MessageBox(NULL, L"worked\n",NULL, NULL);
    }

私はウィジェットがそこにあることを知っています.hwndは正しいですが、それへのポインタを取得できないようです.

私が読んだすべてのことによると、これはうまくいくはずですが、常にゼロを返します。誰かが理由を提案できますか?

c++ ビジュアルスタジオ-2008

ありがとう。

4

1 に答える 1

0

QApplication を使用して、すべてのウィジェットのリストを取得し、それぞれのウィンドウ ID をチェックするのはどうですか?

何かのようなもの

foreach (QWidget *widget, QApplication::allWidgets())
{
     if(widget->winId() == hwnd)
     {
         MessageBox(NULL, L"worked\n",NULL, NULL);
     }
}
于 2011-01-05T00:43:45.647 に答える