2013-07-10 55 views
4

我需要獲取並設置IE10中增強的「增強保護模式」選項,以後再從C++代碼中獲取。 我google了很多,但所有的解決方案只描述瞭如何手動而不是從代碼做到這一點,但我需要在我們的IE加載項的安裝程序中這樣做。獲取/設置來自C++代碼的增強保護模式

通過註冊表,WMI或控制檯命令的這個問題的任何其他解決方案也非常有趣。

任何人都可以幫助解決這個問題嗎?

回答

5

警告:這不是受支持的行爲,這樣做可能會使您的代碼被AV產品或Microsoft的SmartScreen標記爲惡意軟件。

Internet控制面板中的「啓用增強保護模式」複選框由註冊表項下的Isolation值控制:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main。如果應使用AppContainers(EPM),則包含值PMEM;如果應使用非EPM完整性級別(IL)(默認爲IE10),則包含值PMIL。沒有API來設置此值,因爲不支持。

保護模式本身在每個區域基礎上啓用或禁用; URLMon API SetZoneActionPolicy用於調整區域的設置(對於URLAction_LOWRIGHTS)以啓用或禁用該區域的保護模式。

+0

非常感謝! **命名爲**'Isolation'的值具有'PMEM'或'PMIL'。至少我可以檢查這個值並提供給用戶在需要時手動改變它。 –

+0

在乾淨的Windows 8.1安裝(IE11附帶)上,「Isolation」鍵不再存在。 – pyrho

+0

您是否嘗試*更改設置? – EricLaw

2

從8.0更新到8.1並且沒有「隔離」鍵值名稱。但啓用了「啓用增強保護模式」。看起來如果'隔離'值名稱不存在,它與設置爲PMEM的值具有相同的效果。當您取消選中「啓用增強保護模式」時會創建鍵值,並在每次切換設置時更新。