Установить политику действий зоны - PullRequest
0 голосов
/ 17 сентября 2011

Я пытаюсь понять, как это использовать. Я хочу установить значение в Zone3 1803 от 0 до 3. Кажется, что нет никакой документации там. Это C ++ Win7 и IE9.

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

В основном я использую RegOpenKey и RegSetValueEX(), но проблема в том, что мне нужно перезапустить проводник, чтобы увидеть изменения. Поэтому я добавил это.

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

Все еще не работает, поэтому было сказано использовать iinetZoneManger

1 Ответ

0 голосов
/ 16 апреля 2018

Это сделает работу:

    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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...