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#实现方案
//打开IE设置-重置浏览器
shellObject.Run("rundll32.exe inetcpl.cpl ResetIEtoDefaults");
await Task.Delay();
//选中删除个人设置
shellObject.SendKeys("{P}");
await Task.Delay();
//选中确定
shellObject.SendKeys("{TAB}");
shellObject.SendKeys("{TAB}");
shellObject.SendKeys("{R}");
await Task.Delay();
//关闭设置
shellObject.SendKeys("{ENTER}");
2. 命令行/Bat文件
或者,使用命令行,生成一个Bat文件,程序启动bat文件就行了。
@echo off
title 重置IE浏览器
echo Set objAP = CreateObject("wscript.shell")>>ResetIE.vbs
echo objAP.Run "rundll32.exe inetcpl.cpl ResetIEtoDefaults">>ResetIE.vbs
echo wscript.sleep >>ResetIE.vbs
echo objAP.AppActivate "Reset Internet Explorer Settings">>ResetIE.vbs
echo objAP.SendKeys "{TAB}">>ResetIE.vbs
echo objAP.SendKeys "{ }">>ResetIE.vbs
echo wscript.sleep >>ResetIE.vbs
echo objAP.SendKeys "{TAB}">>ResetIE.vbs
echo objAP.SendKeys "{TAB}">>ResetIE.vbs
echo objAP.SendKeys "{ }">>ResetIE.vbs
echo wscript.sleep >>ResetIE.vbs
echo objAP.SendKeys "{ENTER}">>ResetIE.vbs
cscript ResetIE.vbs
echo/ echo 已重置IE浏览器!
del /q ResetIE.vbs pause
Github地址:IE环境修复工具
PS:重置IE能解决大部分IE环境问题,当然有些是处理不了的。比如
- 网页对IE版本的要求限制,需要升级IE版本。
- IE升级失败
C# IE环境 - 重置IE(WshShell & Rundll32)的更多相关文章
- C# IE环境 - 重置IE( 注册表)
IE设置,都可以通过注册表,修改.以下是一些常用的IE设置注册表修改~ 检查证书吊销 /// <summary> /// 检查证书是否吊销 /// </summary> /// ...
- sudo执行脚本找不到环境变量
sudo执行脚本找不到变量 问题 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能 ...
- sudo执行脚本找不到环境变量和命令
简介 变量 普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: ...
- Kubeadm部署K8S(kubernetes)集群(测试、学习环境)-单主双从
1. kubernetes介绍 1.1 kubernetes简介 kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理.目的是实现资源管理的自动 ...
- PostgreSql sql shell win10 下乱码解决
重现步骤: 打开 SQL Shell (psql) Server [localhost]: Database [postgres]: Port ]: Username [postgres]: psql ...
- RHCE认证考前辅导
一一:Linux认证题库详细说明 注意事项 (1) RHCSA上午2.5小时,RHCE下午3.5小时,考生需对题目非常熟练. (2) 5样东西必带(身份证.1支黑色水笔.常用邮箱.姓名拼音.聪明的脑袋 ...
- HTML5游戏 看你有多“色” 开发
所有文章搬运自我的个人主页:sheilasun.me 在极客学院看到了这个游戏,在网上找到这个游戏玩了好久真的比较上瘾,于是自己也试着做了一下,可以戳这里试玩→看你有多色 游戏规则: 找出颜色不同的方 ...
- VS2010_慢
ZC:IntelliSense 一旦关闭,代码提示 也就没有了... ZC:IntelliSense 和 IntelliTrace,不是一个东西... 1.http://blog.csdn.net/c ...
- 在CentOS上以源码编译的方式安装Greenplum数据库
集群组成: 一台主机,一台从节点. 系统环境: 操作系统:CentOS 7,64位,7.4.1708(/etc/redhat-release中查看) CPU:AMD Fx-8300 8核 内存:8GB ...
随机推荐
- 基于springboot的RestTemplate、okhttp和HttpClient对比
1.HttpClient:代码复杂,还得操心资源回收等.代码很复杂,冗余代码多,不建议直接使用. 2.RestTemplate: 是 Spring 提供的用于访问Rest服务的客户端, RestTem ...
- 微软面试题:鸡蛋从第N层及以上的楼层落下会摔破
from:https://blog.csdn.net/qq_18425655/article/details/52326709 题目: 有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破 ...
- jenkins maven tomcat做持续集成
maven 采用 maven 3.0以上的版本.tomcat 采用 tomcat 7.0 以上的版本 1. tomcat 配置用户账号和权限 tomcat-users.xml <role rol ...
- L83
Kids Gulp 7 Trillion Calories Per Year Kids from the ages of 2 to 19, consume about seven trillion c ...
- Android的appium实例
1.查看Android的应用包名和activity的方法 (网上有很多种方法,这里应用的是查看日志的方法) CMD中输入>adb logcat -c &g ...
- vmware 三种网络模式图解及分区挂载
- java-05 面向对象
class StudentDemo { String name; int age; String address; public void study(){ System.out.println(&q ...
- codevs 3049 舞蹈家怀特先生
题目描述 Description 怀特先生是一个大胖子.他很喜欢玩跳舞机(Dance Dance Revolution, DDR),甚至希望有一天人家会脚踏“舞蹈家怀特先生”.可惜现在他的动作根本不能 ...
- poj1742硬币——多重背包可行性
题目:http://poj.org/problem?id=1742 贪心地想,1.如果一种面值已经可以被组成,则不再对它更新: 2.对于同一种面值的硬币,尽量用较少硬币(一个)更新,使后面可以用更多此 ...
- PHP函数---$_Get()和$_Post()的用法
一.$_Get()和$_Post()函数是用来传值的,即对应两种提交表单的方法,get和post. 二.$_Get方法 (1)获取通过URL的传值 Example 1 新建两个PHP文件,1.php, ...