C# IE环境 - 重置IE(WshShell & Rundll32)

前言

IE问题:git

 

 

 

如何重置IE选项?github

经过修改注册表,理论上是可行的。前提是你知道重置IE时,有多少注册表项要更改。shell

若是能直接调用IE的重置设置窗口,并执行重置,能完美重置IE。windows

 

WshShell

建立WshShell对象能够运行程序、操做注册表、建立快捷方式、访问系统文件夹、管理环境变量浏览器

经过引用Microsoft.VisualBasic,初始化 dynamic shellObject = Interaction.CreateObject("WScript.Shell", "");tcp

Rundll32命令

文件做用:执行32位DLL文件中的内部函数函数

位置:X:(当前系统分区)\windows\system32工具

命令语法: Rundll32.exe DLLname,Functionname [Arguments]ui

实例: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255spa

注:InetCpl.cpl是dll名称,ClearMyTracksByProcess是函数名,255

 

详细,可参考:rundll32.exe命令使用大法

重置IE-实现方案

1. C#实现方案

 1 //打开IE设置-重置浏览器
 2 shellObject.Run("rundll32.exe inetcpl.cpl ResetIEtoDefaults");  3 await Task.Delay(800);  4 //选中删除我的设置
 5 shellObject.SendKeys("{P}");  6 await Task.Delay(100);  7 //选中肯定
 8 shellObject.SendKeys("{TAB}");  9 shellObject.SendKeys("{TAB}"); 10 shellObject.SendKeys("{R}"); 11 await Task.Delay(3000); 12 //关闭设置
13 shellObject.SendKeys("{ENTER}");

 2. 命令行/Bat文件

或者,使用命令行,生成一个Bat文件,程序启动bat文件就好了。

 1 @echo off  2 title 重置IE浏览器  3 echo Set objAP = CreateObject("wscript.shell")>>ResetIE.vbs  4 echo objAP.Run "rundll32.exe inetcpl.cpl ResetIEtoDefaults">>ResetIE.vbs  5 echo wscript.sleep 800>>ResetIE.vbs  6 echo objAP.AppActivate "Reset Internet Explorer Settings">>ResetIE.vbs  7 echo objAP.SendKeys "{TAB}">>ResetIE.vbs  8 echo objAP.SendKeys "{ }">>ResetIE.vbs  9 echo wscript.sleep 800>>ResetIE.vbs 10 echo objAP.SendKeys "{TAB}">>ResetIE.vbs 11 echo objAP.SendKeys "{TAB}">>ResetIE.vbs 12 echo objAP.SendKeys "{ }">>ResetIE.vbs 13 echo wscript.sleep 3000>>ResetIE.vbs 14 echo objAP.SendKeys "{ENTER}">>ResetIE.vbs 15 cscript ResetIE.vbs 16 echo/
17 
18 echo 已重置IE浏览器! 19 del /q ResetIE.vbs 20 
21 pause

 Github地址:IE环境修复工具

 

PS:重置IE能解决大部分IE环境问题,固然有些是处理不了的。好比

  1. 网页对IE版本的要求限制,须要升级IE版本。
  2. IE升级失败
相关文章
相关标签/搜索