如何在 IE 保护模式下抑制警告

Posted

技术标签:

【中文标题】如何在 IE 保护模式下抑制警告【英文标题】:How to supress the warning in IE's protected mode 【发布时间】:2010-06-23 12:10:13 【问题描述】:

我有一个将网页捕获为图像的 BHO,然后我运行另一个进程来 pngcrush 这样创建的图像。我在启用 UAC 的系统中面临的问题是,每次 IE 运行时,我都会收到一个警告,提示我从 BHO 生成的 pngcrushing 进程。我在这里阅读

Understanding and Working in Protected Mode Internet Explorer archive

从保护模式启动进程

一般来说,扩展应尽可能作为低完整性进程运行。这提供了针对恶意攻击的最佳保护。但是,有时扩展可能需要访问中等甚至高完整性的对象。

为此,请创建一个代理进程来访问更高完整性的对象,然后启动具有更高完整性级别的代理进程。默认情况下,Internet Explorer 会提示用户确认中等完整性提升过程,如以下屏幕截图所示。

您可以通过创建提升策略以静默方式将代理进程提升到中等完整性级别,该策略是一系列注册表项和值,用于告诉保护模式如何处理特定代理的提升。提升策略必须具有与其关联的全局唯一标识符 (GUID)。使用 CreateGuid 为您的策略创建新的 GUID。接下来,将密钥添加到以下位置。

然后继续描述静默提升帮助过程所需的注册表项:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\8e884ace-bee4-11e4-8dfc-aa07a5b093db

AppName:REG_SZ = "Contoso.exe" AppPath:REG_SZ = "C:\%USERPROFILE%\Application Data\Contoso" 政策:REG_DWORD = 0x00000003

当我手动执行相同的注册条目以查看是否超出了这些警告时,发现它不起作用。有人可以告诉我如何在没有任何 UAC 警告的情况下从 BHO 静默运行该过程吗?

卡皮尔

【问题讨论】:

应该可以。你是如何产生这个过程的?您是否在 64 位机器上运行 32 位版本的 IE? 是的,你是对的。我在 64 位机器上运行 32 位版本的 IE。我在下面的答案中产生了如下的过程:(不能在这里写,因为格式不正确) 【参考方案1】:

针对上面@blueraja 的评论,这里是我使用tp spawn 进程的代码:

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = binPath + "\\pngnqi.exe";
info.WindowStyle = ProcessWindowStyle.Hidden;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.Arguments = " -e .jpg " + " \"" + filePath + "thumb_" + count + "\" " + " \"" + filePath + "temp\\" + count + "\" ";
Process pngnqi_process = Process.Start(info); 

【讨论】:

以上是关于如何在 IE 保护模式下抑制警告的主要内容,如果未能解决你的问题,请参考以下文章

隔离存储无法使用 IE 保护模式? C#

禁用IE的保护模式

检查 Internet Explorer 保护模式

如何在经典模式下保护 IIS7 上的静态内容?

springCloud:Eureka的自我保护模式多网卡下的IP选择Eureka的健康检查

01保护模式