当前位置:编程学习 > VB >>

如何用代码控制系统还原呢?

如何用代码控制系统还原呢? --------------------编程问答-------------------- 使用WMI --------------------编程问答-------------------- 给出你VBS脚本代码,改改就可以了.....
Windows Management Instrumentation (WMI) 创建、枚举和还原以前创建的还原点。 



要求
若要运行 WMI,必须具有管理员权限。可通过 WMI 和 Srclient.dll 文件使用系统还原。 

下面的 VBScript 代码摘录是最小的示例。请务必先对该代码进行错误检查和完整的测试,然后再实施。 




创建系统还原点
'use WMI moniker and SystemRestore class
set SRP = getobject("winmgmts:\\.\root\default:Systemrestore")
CSRP = SRP.createrestorepoint ("this is a test", 0, 100)




为特定驱动器禁用或启用系统还原
onoff = inputbox ("Do you want enable or disable System Restore?", "System Restore")
Drive = inputbox ("Which Drive would you like to take action on? Must type in format 'c:\'", 

"Drive to enable/disable")


set SRP = GetObject("winmgmts:\\.\root\default:SystemRestore")

If onoff = "enable"  then
eSRP = SRP.enable(drive)
end if

If onoff = "disable" then
eSRP = SRP.disable(drive)
end if



枚举计算机上的系统还原点

set SRP = getobject("winmgmts:\\.\root\default").InstancesOf ("systemrestore")
for each Point in SRP
msgbox point.creationtime & vbcrlf & point.description & vbcrlf & "Sequence Number= " & point.sequencenumber
next

日期按照 yyyymmddHHMMSS.mmmmmmsUUU 格式返回,其中: 
yyyy = 四位数年份
mm = 两位数月份
dd = 月中的某一天(两位数)
HH= 一天中的某个小时(两位数,00-23)
SS = 秒 (00-59)
mmmmmm = 毫秒
s = 加号 (+) 或减号 (-),表示相对协调通用时间 (UTC) 的正或负偏移量
UUU = 起始时区从 UTC 偏离的偏移量(用分钟表示) 
注意:不能根据特定日期筛选项目。筛选过程始于第一个还原点并从该位置进行枚举。如果要筛选项目,需要编写筛选器的脚本以减少基于返回值的日期。



回滚到特定的还原点
注意:如果未调用计算机关闭,则不要使用该函数。如果计算机未立即重新启动,则系统还原可能无法正确运行。 set SRP = getobject("winmgmts:\\.\root\Default:SystemRestore")
 eSRP = SRP.Restore(22) 'parameter passed is the sequence number of the restore point you want to roll back to.


--------------------编程问答-------------------- 恩,看了,是一个好的东西,可是怎么调试不过去呢? --------------------编程问答-------------------- Ding --------------------编程问答-------------------- 呵呵....你把每一段都复制保存为VBS看看...

然后可以用调用VBS的方式使用,不过最好是转成VB代码,给你转一段..你看看就明白了


'添加还原点
Private Sub AddPoint()
Const DEVICE_DRIVER_INSTALL = 10
Const BEGIN_SYSTEM_CHANGE = 100
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\default")
Set objItem = objWMIService.Get("SystemRestore")
errResults = objItem.CreateRestorePoint("Scripted restore", DEVICE_DRIVER_INSTALL, BEGIN_SYSTEM_CHANGE)
Print errResults

End Sub



Private Sub Form_Load()
AddPoint
End Sub --------------------编程问答-------------------- Win2000里调试不了,有什么办法吗?
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,