设置区域操作策略

时间:2011-09-17 02:27:03

标签: internet-explorer visual-c++ windows-7

我正在试图弄清楚如何使用它。我想在Zone3 1803中设置一个从0到3的值。似乎没有任何文档。这个C ++ Win7和IE9。

HRESULT SetZoneActionPolicy(
  [in]  DWORD dwZone,
  [in]  DWORD dwAction,
  [in]  BYTE *pPolicy,
  [in]  DWORD cbPolicy,
  [in]  URLZONEREG urlZoneReg
);

基本上,我正在使用RegOpenKeyRegSetValueEX(),但问题是我必须重新启动资源管理器才能看到更改。所以我加了这个。

SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)_T("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3")); 

仍然没有工作,所以被告知要使用iinetZoneManger

1 个答案:

答案 0 :(得分:0)

这将完成这项工作:

    HRESULT hr;
    IInternetZoneManager *pZoneMgr;

    hr = CoCreateInstance(CLSID_InternetZoneManager, NULL, CLSCTX_INPROC_SERVER,
        IID_IInternetZoneManager, (void**)&pZoneMgr);

    //https://msdn.microsoft.com/en-us/ie/ms537179(v=vs.94)
    int policy = URLPOLICY_ALLOW;

    //http://distcomp.ru/www/vladimirv/inetsdk/inet0287.htm
    hr = pZoneMgr->SetZoneActionPolicy(URLZONE_INTERNET, URLACTION_SCRIPT_RUN, (BYTE*)&policy, sizeof(policy), URLZONEREG_HKCU);