触及Morten所说的可以使用该API的内容.据我所知,WMI没有提供删除还原点的方法.如果您有序列号,SRRemoveRestorePoint可以删除还原点.你可以通过WMI获得.这是我删除还原点的代码.
[DllImport("Srclient.dll")]
public static extern int SRRemoveRestorePoint(int index);
private void button1_Click(object sender, EventArgs e)
{
int SeqNum = 335;
int intReturn = SRRemoveRestorePoint(SeqNum);
}
Run Code Online (Sandbox Code Playgroud)
我只是扔了335,因为那是我能在我的系统上找到的最远的一个.计数可能从1开始并持续递增.所以它并不像在数组中那样简单地拥有索引.
至于获取序列号,我将代码从Microsoft转换为C#,它将为您提供该信息.请务必添加System.Management作为参考.否则此代码将无法正常工作.
private void EnumRestorePoints()
{
System.Management.ManagementClass objClass = new System.Management.ManagementClass("\\\\.\\root\\default", "systemrestore", new System.Management.ObjectGetOptions());
System.Management.ManagementObjectCollection objCol = objClass.GetInstances();
StringBuilder Results = new StringBuilder();
foreach (System.Management.ManagementObject objItem in objCol)
{
Results.AppendLine((string)objItem["description"] + Convert.ToChar(9) + ((uint)objItem["sequencenumber"]).ToString());
}
MessageBox.Show(Results.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我在我的盒子上测试了这个(顺便说一下Vista),它没有问题.还必须作为管理员运行,但我认为你想通了.
| 归档时间: |
|
| 查看次数: |
2922 次 |
| 最近记录: |