偶尔用Winform的Webbrowser,但是ie版本太低。

手改改注册表了太慢了。

弄个了程序,修改的代码时网上的,自己就是写了个界面。

支持IE11。

XAML页面代码

  1. <Window.Resources>
  2. <ObjectDataProvider x:Key="ieList" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
  3. <ObjectDataProvider.MethodParameters>
  4. <x:Type TypeName="local:IEVersion"/>
  5. </ObjectDataProvider.MethodParameters>
  6. </ObjectDataProvider>
  7. </Window.Resources>
  8. <Grid>
  9. <Grid.ColumnDefinitions>
  10. <ColumnDefinition Width="auto"/>
  11. <ColumnDefinition Width="*"/>
  12. </Grid.ColumnDefinitions>
  13. <ListBox BorderThickness="0,0,1,0" MinWidth="150" ItemsSource="{Binding Source={StaticResource ieList}}" x:Name="IETypeList" Grid.Column="0"/>
  14. <Grid Grid.Column="1">
  15. <Grid.Resources>
  16. <Style TargetType="Grid">
  17. <Setter Property="Margin" Value="0,0,0,10"/>
  18. </Style>
  19. </Grid.Resources>
  20. <Grid.RowDefinitions>
  21. <RowDefinition Height="auto"/>
  22. <RowDefinition Height="auto"/>
  23. <RowDefinition Height="auto"/>
  24. <RowDefinition Height="auto"/>
  25. </Grid.RowDefinitions>
  26. <Grid Grid.Row="0" >
  27. <Grid.ColumnDefinitions>
  28. <ColumnDefinition Width="auto"/>
  29. <ColumnDefinition Width="*"/>
  30. </Grid.ColumnDefinitions>
  31. <TextBlock Text="IE版本"/>
  32. <TextBlock Margin="10,0,0,0" Grid.Column="1" Foreground="Red" Text="{Binding ElementName=IETypeList,Path=SelectedItem}" />
  33. </Grid>
  34. <Grid Grid.Row="1">
  35. <Grid.ColumnDefinitions>
  36. <ColumnDefinition Width="auto"/>
  37. <ColumnDefinition Width="*"/>
  38. </Grid.ColumnDefinitions>
  39. <TextBlock Text="程序名称(不用.exe)"/>
  40. <TextBox Margin="10,0,0,0" Grid.Column="1" x:Name="ProgramNAME"/>
  41. </Grid>
  42. <Grid Grid.Row="2">
  43. <Button Content="写入" x:Name="WriteBtn" Click="WriteBtn_Click"/>
  44. </Grid>
  45. </Grid>
  46. </Grid>

后台代码:

  1. public partial class MainWindow : Window
  2. {
  3. public MainWindow()
  4. {
  5. InitializeComponent();
  6. }
  7.  
  8. private void WriteBtn_Click(object sender, RoutedEventArgs e)
  9. {
  10. if (IETypeList.SelectedIndex < )
  11. return;
  12. if (ProgramNAME.Text.Length < || string.IsNullOrWhiteSpace(ProgramNAME.Text))
  13. return;
  14. var select = (IEVersion)IETypeList.SelectedItem;
  15.  
  16. var name = ProgramNAME.Text+=".exe";
  17.  
  18. IE.SetIE(select, name);
  19.  
  20. ProgramNAME.Text.Replace(".exe", string.Empty);
  21. }
  22. }

IE类:

  1. public enum IEVersion
  2. {
  3. 强制ie11,//11001
  4. 标准ie11,//
  5. 强制ie10,//10001 (0x2711) Internet Explorer 10。网页以IE 10的标准模式展现,页面!DOCTYPE无效
  6. 标准ie10,//10000 (0x02710) Internet Explorer 10。在IE 10标准模式中按照网页上!DOCTYPE指令来显示网页。Internet Explorer 10 默认值。
  7. 强制ie9,//9999 (0x270F) Windows Internet Explorer 9. 强制IE9显示,忽略!DOCTYPE指令
  8. 标准ie9,//9000 (0x2328) Internet Explorer 9. Internet Explorer 9默认值,在IE9标准模式中按照网页上!DOCTYPE指令来显示网页。
  9. 强制ie8,//8888 (0x22B8) Internet Explorer 8,强制IE8标准模式显示,忽略!DOCTYPE指令
  10. 标准ie8,//8000 (0x1F40) Internet Explorer 8默认设置,在IE8标准模式中按照网页上!DOCTYPE指令展示网页
  11. 标准ie7//7000 (0x1B58) 使用WebBrowser Control控件的应用程序所使用的默认值,在IE7标准模式中按照网页上!DOCTYPE指令来展示网页
  12. }
  13. public class IE
  14. {
  15. public static void SetIE(IEVersion ver, string Name)
  16. {
  17. string productName = Name;//获取程序名称
  18.  
  19. object version;
  20. switch (ver)
  21. {
  22. case IEVersion.标准ie7:
  23. version = 0x1B58;
  24. break;
  25. case IEVersion.标准ie8:
  26. version = 0x1F40;
  27. break;
  28. case IEVersion.强制ie8:
  29. version = 0x22B8;
  30. break;
  31. case IEVersion.标准ie9:
  32. version = 0x2328;
  33. break;
  34. case IEVersion.强制ie9:
  35. version = 0x270F;
  36. break;
  37. case IEVersion.标准ie10:
  38. version = 0x02710;
  39. break;
  40. case IEVersion.强制ie10:
  41. version = 0x2711;
  42. break;
  43. case IEVersion.标准ie11:
  44. version = 0x2AF8;
  45. break;
  46. case IEVersion.强制ie11:
  47. version = 0x2EDF;
  48. break;
  49. default:
  50. version = 0x1F40;
  51. break;
  52. }
  53.  
  54. RegistryKey key = Registry.CurrentUser;
  55. RegistryKey software =
  56. key.CreateSubKey(
  57. @"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\" + productName);
  58. if (software != null)
  59. {
  60. software.Close();
  61. software.Dispose();
  62. }
  63. RegistryKey wwui =
  64. key.OpenSubKey(
  65. @"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);
  66. //该项必须已存在
  67. if (wwui != null)
  68. {
  69. wwui.SetValue(productName, version, RegistryValueKind.DWord);
  70. MessageBox.Show("写入完毕");
  71. }
  72. else
  73. MessageBox.Show("写入失败");
  74. }
  75. }

程序截图

源代码和程序下载

WPF 修改Webbrowser的IE版本小程序(32位)的更多相关文章

  1. VSTO学习笔记(七)基于WPF的Excel分析、转换小程序

    原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...

  2. CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决

    Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...

  3. iOS如何兼容的应用程序32位系统和64Bit系统

    苹果发布iPhone5S时刻,64应用程序位去了眼前.当时我看到苹果公布的官方数据iOS7.x的SDK支撑64位应用程序.而内置的应用程序已经64位置. 我记得自己刚刚接触电脑时还有16位的系统,指针 ...

  4. v2.0版本小程序开发心得(代码之外)

    总结一些代码之外的事情: 做优先该做的事情 分清主次,一天只有24小时,人的精力也是有限的,而且经常性的是,在某个时间爆发性的产生了大量的问题.这些问题集中的产生,需要一个一个的解决,但是人的精力是有 ...

  5. 小程序2-基本架构讲解(一)JSON配置与详解

    项目里边生成了不同类型的文件: .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模板文件 .wxss 后缀的 WXSS 样式文件 .js 后缀的 JS 脚本逻辑文件 JSON 配 ...

  6. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  7. 微信小程序学习指南

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  8. 微信小程序-1

    微信小程序 (开发微信小程序基础:HTML+js+css) l  准备工作 工具安装 开发工具是由微信官方提供 项目的预览(校验环境) l  开发体验阶段 -         Hello world ...

  9. C#开发微信小程序

    个人见解,欢迎交流,不喜勿喷.   微信小程序相比于微信公众号的开发,区别在于微信小程序只请求第三方的数据,整个界面的交互(view)还是在微信小程序上实现,前后端完全分离,说白了,微信小程序开发与具 ...

随机推荐

  1. 07-Node.js学习笔记-路由

    路由 http://localhost:3000/index http://localhost:3000/login //路由是指客户端请求地址与服务器端程序代码的对应关系.简单的说,就是请求什么响应 ...

  2. nginx(4)

    目录 一.安装配置 1.安装 2.配置文件 3.测试和启动 二.功能 1.虚拟主机 1.1 基于IP 1.2 基于域名 1.3 基于端口 2.访问控制 3.用户认证 4.文件共享 5.文件别名 6.状 ...

  3. spring data JPA entityManager查询 并将查询到的值转为实体对象

    spring data JPA entityManager查询 并将查询到的值转为实体对象 . https://blog.csdn.net/qq_34791233/article/details/81 ...

  4. Java之DateFormat类

    DateFormat类概述 java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进 ...

  5. IntersectionObserver API,观察元素是否进入了可视区域

    网页开发时,常常需要了解某个元素是否进入了"视口"(viewport),即用户能不能看到它. 上图的绿色方块不断滚动,顶部会提示它的可见性. 传统的实现方法是,监听到scroll事 ...

  6. 05-文档编辑与yum命令

    一.Linux vi/vim vi是所有的Unix系统都会有,但是目前我们使用最多的是vim编辑器.vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性. vim是从vi发展出来的一个文本编辑 ...

  7. C# 使用NAudio合并mp3、wav音频文件

    1.什么是wav格式    WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windo ...

  8. ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试

    想必大家之前在进行ASP.NET Web 应用程序开发期间都有用到过将我们的网站部署到IIS自定义主机域名并附加到进程进行调试. 那我们的ASP.NET Core Web 应用程序又是如何部署到我们的 ...

  9. (转)颜色直方图, HSV直方图, histogram bins

    原文链接:https://www.xuebuyuan.com/3256564.html 一个histogram,通常可以用一个列向量表示(例子中的a,b),列向量里面的每一个值就是一个bin(a,b) ...

  10. 上传图片到七牛云(服务端 node.js sdk)

    大体思路 前端要上传图片到七牛云,需要有一个token进行授权操作,而获取这个上传的upload token(以下简称upToken),在服务端需要一定的身份校验,比如说:只有登录的vip用户才能拿到 ...