【问题标题】:Disabling "Script Error" popup IWebBrowser2 c++ WinApi禁用“脚本错误”弹出IWebBrowser2 c++ WinApi
【发布时间】:2019-12-10 23:12:16
【问题描述】:

有一个带有 IWebBrowser2 的 HWND。 IWebBrowser2 是新的 CLSID_WEBBROWSER。 当我导航到 youtube、google 等时,有时它会显示脚本错误。我想禁用它。我该怎么做?


if (MoneyHWND == NULL) {
                if (SUCCEEDED(OleInitialize(NULL)))
                {
                    vector<wchar_t> fn(1000);
                    GetModuleFileName(0, fn.data(), 1000);
                    PathStripPath(fn.data());
                    RKEY k(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION");
                    k[fn.data()] = 11001UL; // Use IE 11
                    MoneyHWND = CreateDialog(GetModuleHandle(0), MAKEINTRESOURCE(IDD_FORMVIEW1), hWnd, MoneyProc);
                    pBrowser2 = new WebBrowser(MoneyHWND);

                    RECT rc;
                    GetClientRect(MoneyHWND, &rc);
                    pBrowser2->SetRect(rc);


                    pBrowser2->Navigate(site);

                    OleUninitialize();
                }
            }

【问题讨论】:

标签: c++ winapi com iwebbrowser2


【解决方案1】:

IWebBrowser2::Silent:

设置或获取一个指示对象是否可以显示对话框的值。

请注意,该属性使用以下签名向 C 和 C++ 程序公开:

HRESULT IWebBrowser2::get_Silent(VARIANT_BOOL *pbSilent);
HRESULT IWebBrowser2::put_Silent(VARIANT_BOOL bSilent);

换句话说:

    // ...
    auto hr{ pBrowser2->put_Silent(VARIANT_TRUE) };
    if FAILED(hr)
    {
        // Handle error
        // ...
    }

【讨论】:

  • @TheGamerCoder - class WebBrowser : ...public IDocHostShowUI,在WebBrowser::QueryInterface 中添加else if (riid == __uuidof(IDocHostShowUI)) { *ppvObject = static_cast&lt;IDocHostShowUI*&gt;(this); }webBrowser2-&gt;put_Silent(VARIANT_TRUE)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
  • 2017-01-26
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
相关资源
最近更新 更多