当前位置:  开发笔记 > 编程语言 > 正文

如何在c#中删除Windows还原点?

如何解决《如何在c#中删除Windows还原点?》经验,为你挑选了1个好方法。

我正在寻找一种方法来使用C#删除Windows还原点,可能是通过调用WMI.

任何代码段都非常有用.



1> Rob Haupt..:

触及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);
}

我只是扔了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());
    }

我在我的盒子上测试了这个(顺便说一下Vista),它没有问题.还必须作为管理员运行,但我认为你想通了.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有