我有一个简单的批处理文件,可以自动执行我们经常执行的任务。 (结束所有Internet Explorer进程,打开“控制面板”>“ Internet设置”>“高级”>“重置IE”)。这是代码
@echo off
taskkill /F /IM iexplore.exe /T
timeout /t 2 /nobreak > NUL
rundll32.exe InetCpl.cpl,ResetIEtoDefaults
批处理文件中是否存在一种本机方式来模拟按下“重置”按钮,或者绕过该按钮并仅执行它? *没有第三方软件下载。
答案 0 :(得分:1)
只需使用Windows脚本宿主中的SendKeys()
来模拟键盘导航。通常,您可以发送 Tab 或 Shift + Tab 将焦点移至不同的窗口控件,或将 Spacebar 移至切换复选框或激活按钮。或者,如果您要激活的控件已经分配了热键(通常用带下划线的一个字母标记),只需发送 Alt +下划线的任何字母即可。在打开此Internet Explorer对话框的情况下, Alt + P 将切换该复选框,而 Alt + R 将激活“重置”按钮。有关更多详细信息,请参见Microsoft's SendKeys() documentation。
这是一个批处理+ JScript混合示例:
@if (@CodeSection == @Batch) @then
@echo off & setlocal
2>NUL taskkill /F /IM iexplore.exe /T
timeout /t 2 /nobreak > NUL
start "" rundll32.exe InetCpl.cpl,ResetIEtoDefaults
cscript /nologo /e:Jscript "%~f0"
goto :EOF
@end // end Batch / begin JScript hybrid code
var sh = WSH.CreateObject('Wscript.Shell');
sh.AppActivate("Reset Internet Explorer Settings");
sh.SendKeys("%p%r");
这是另一个示例,这次是从.bat脚本调用PowerShell:
@echo off & setlocal
2>NUL taskkill /F /IM iexplore.exe /T
timeout /t 2 /nobreak > NUL
start "" rundll32.exe InetCpl.cpl,ResetIEtoDefaults
powershell "$sh=new-object -COM Wscript.Shell;$sh.AppActivate('Reset Internet Explorer Settings');$sh.SendKeys('%p%r')"
当然,如果您的脚本有可能会以其他语言在Windows安装上运行,则可能需要将重置窗口的焦点放在其HWND而非标题上。不过,这是另一堂课的主题。