1

C++ の Web ブラウザーの場合、アクティブな Windows アドレス バーのコンテンツを取得する必要があります。タイトルを取得する方法とメモ帳の内容を取得する方法を理解しましたが、ブラウザでスタックしています。

私の目標は、これを IE、Chrome、および Firefox で機能させることです。これに別の方法が必要な場合は、データが返されるまで、プログラムにそれぞれの方法を試してもらいます。

これが私がこれまでに持っているものです:

    HWND foreground = GetForegroundWindow();
    HWND hwndEdit = FindWindowEx(foreground, NULL, "EDIT", NULL);

    const int bufferSize = 5024;
    char textBuffer[bufferSize] = "";
    SendMessage(hwndEdit, WM_GETTEXT, (WPARAM)bufferSize, (LPARAM)textBuffer);

    cout << textBuffer;
4

3 に答える 3

1

だから、これは IE で動作しているように見えますが、FireFox と Chrome ではまだ動作しています。

ここにIEのコードがあります

    HWND foreground = GetForegroundWindow();
    HWND hwndEdit = FindWindowEx(foreground, NULL, "EDIT", NULL);

    HWND handle = FindWindowEx(foreground, NULL, "WorkerW", "Navigation Bar");
    if (NULL != handle)
    {
    handle = FindWindowEx(handle, NULL, "ReBarWindow32", NULL);
    if (NULL != handle)
    {
    handle = FindWindowEx(handle, NULL, "Address Band Root", NULL);
    }}
    HWND hwndEdit = FindWindowEx(handle, NULL, "Edit", NULL);

    const int bufferSize = 5024;
    Char textBuffer[bufferSize] = "";
    SendMessage(hwndEdit, WM_GETTEXT, (WPARAM)bufferSize, (LPARAM)textBuffer);

    string addressbartext = textBuffer;
    if(addressbartext == "AutoCompleteProxy")
    {addressbartext = "";}
    else
    {addressbartext = textBuffer;
    }

    cout << addressbartext;
于 2013-10-10T13:20:39.900 に答える
0

参照:訪問した Web サイトを確認しますが、特に Chrome の場合により良い解決策が見つかった場合はお知らせください。

于 2015-05-27T11:00:55.053 に答える