【发布时间】:2020-02-12 07:49:43
【问题描述】:
我最近在谷歌上搜索,发现CCleaner 之类的工具可以通过 VBScript 或 AutoIt 脚本自动扫描和修复注册表错误。
由于我更喜欢原生工具和库,所以我创建了一个 VBScript 来自动化注册表清理过程(直到最后一次单击按钮,因为按钮太多而无法自动化),如下所示:
On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")
Set UsrEnvDmn = WshShell.Environment("User")
UsrEnvDmn("CclnrInstDir") = "C:\Program Files\CCleaner"
WshShell.Run """%CclnrInstDir%\\CCleaner64.exe"" /Registry"
WScript.Sleep 1000 : WshShell.AppActivate "CCleaner"
WScript.Sleep 2000 : WshShell.SendKeys "%s"
WScript.Sleep 5000 : WshShell.SendKeys "%f"
Set WshShell = Nothing : Set UsrEnvDmn = Nothing
但问题是一旦 CCLeaner 打开并成为焦点,Sendkeys 函数就不会单击/选择窗口中的任何按钮或选项。如果我手动按下Alt + s,那么扫描过程确实开始了,但我非常需要自动化这件事,如果可能的话,直到注册表清理过程的最后。
有人可以指导吗?
【问题讨论】:
-
同时作为用户和管理员输入
cleanmgr /?。这是唯一安全的方法。
标签: vbscript automation windows-10 window sendkeys