2008年8月3日星期日

C#修改IE配置 禁止IE显示图片 禁止IE显示Flash

最近在用 C# 写程序的时候需要用编程的方式修改IE的配置属性。一是要禁止IE显示图片,二是要禁止IE显示Flash。

禁止IE显示图片,如果手动修改的话应该是取消选中 工具 -> Internet 选项 -> 高级 -> 显示图片 -> 多媒体 -> 显示图片 就可以了。
在程序中,只能通过修改注册表来实现。C# 示例代码如下:
RegistryKey regKey = Registry.CurrentUser;
string SubKeyPath = @"Software\Microsoft\Internet Explorer\Main";
RegistryKey optionKey = regKey.OpenSubKey(SubKeyPath, true);
optionKey.SetValue("Display Inline Images", "no");

禁止IE显示Flash,手动方法除了借助一些第三方工具外我还没有找到合适的方法(取消选中 工具 -> Internet 选项 -> 高级 -> 显示图片 -> 多媒体 -> 在网页中播放动画 没有效果,也许这里的动画只的不是Flash)。
一番google之后,最终的解决方案还是修改注册表,这次修改HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\ActiveX Compatibility\{D27CDB6E-AE6D-11CF-96B8-444553540000}
将其中 "Compatibility Flags" 的数值数据设为 十六进制的400也就是十进制的1024 就可以禁止IE显示Flash了。

如果注册表中没有这个Key,那么需要在
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\ActiveX Compatibility 下新建一个以 {D27CDB6E-AE6D-11CF-96B8-444553540000} 为名称的键(Key),然后再为其创建一个名称为 Compatibility Flags 的 DWORD 值,其数值数据 0 表示允许Flash,400(十六进制)表示禁止IE显示Flash。
代码与前者的不同仅在于赋值时需要指定类型RegistryValueKind.DWord,如下所示:
optionKey.SetValue("Compatibility Flags", 1024, RegistryValueKind.DWord);

0 comments: