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


前言

IE問題:

 

 

 

如何重置IE選項?

通過修改注冊表,理論上是可行的。前提是你知道重置IE時,有多少注冊表項要更改。

如果能直接調用IE的重置設置窗口,並執行重置,能完美重置IE。

 

WshShell

創建WshShell對象可以運行程序、操作注冊表、創建快捷方式、訪問系統文件夾、管理環境變量

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

Rundll32命令

文件作用:執行32位DLL文件中的內部函數

位置:X:(當前系統分區)\windows\system32

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

實例: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255

注: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升級失敗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM