2011-10-10 51 views
3

我正在檢查系統還原狀態檢查(啓用/禁用)。 之後的R & DI發現,它可以在以下方式進行:在srclient.dll 檢查C#中系統還原狀態的方法

  • 編輯系統登錄鍵
  • WMI可用,直到XP版

    1. 狀態檢查..

    1)我需要幫助,瞭解如何從C#中的SystemRestore註冊表中檢查註冊表項值。

    2)如果我需要使用C#庫中的可用功能設置或刪除還原點,但我想在用戶設置或刪除還原點之前檢查狀態,我的程序代碼正常工作。如果有人幫忙找出解決辦法, 會很感激。

  • 回答

    4

    這是我如何檢查,看看是否已啓用系統還原:

    RegistryKey rk = Registry.LocalMachine; 
    RegistryKey rk1 = rk.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore"); 
    string sysRestore = rk1.GetValue("RPSessionInterval").ToString(); 
    if (sysRestore.Contains("1")) 
    { 
        MessageBox.Show("System Restore is Enabled"); 
    } 
    
    if (sysRestore.Contains("0")) 
    { 
        MessageBox.Show("System Restore is Disabled"); 
    } 
    

    爲了使系統的WMI還原:

    string osDrive = Path.GetPathRoot(Environment.SystemDirectory); 
    
    ManagementScope scope = new ManagementScope("\\\\localhost\\root\\default"); 
    ManagementPath path = new ManagementPath("SystemRestore"); 
    ObjectGetOptions options = new ObjectGetOptions(); 
    ManagementClass process = new ManagementClass(scope, path, options); 
    ManagementBaseObject inParams = process.GetMethodParameters("Enable"); 
    inParams["WaitTillEnabled"] = true; 
    inParams["Drive"] = osDrive; 
    ManagementBaseObject outParams = process.InvokeMethod("Enable", inParams, null); 
    
    +3

    如何獲得該系統還原的磁盤驅動器被啓用? – SepehrM

    +1

    @SepehrM你是否找到了你的問題的答案,然後請讓我知道我有同樣的問題如果系統保護打開或關閉,我如何可以爲一個驅動器。 –