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升級失敗
相關文章
相關標籤/搜索