2010-12-12 47 views
1

我必須插入此註冊表:如何使用C#向註冊表插入任何值?

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\AutoStartOnConnect] 
"AutoRun"="d:\\MyFolder\\MyProgram.exe" 

我會怎麼做這在C#?

+3

你確定你的程序有足夠的權限來訪問註冊表,特別是'HKLM'嗎? – 2010-12-12 09:35:02

回答

7

事情是這樣的:

string name = @"SOFTWARE\Microsoft\Windows CE Services\AutoStartOnConnect"; 
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(name, true)) 
{ 
    if (key == null) 
    { 
     // Whatever you want to do if the key isn't found 
    } 
    else 
    { 
     key.SetValue("AutoRun", @"d:\MyFolder\MyProgram.exe"); 
    } 
} 

如果使用CreateSubKey代替OpenSubKey,如果它不存在,將創建它(或否則打開它) - 但我懷疑,在大多數情況下,如果該鍵不存在,則表示系統的其餘部分未處於適合您應用程序的狀態。

3

您可以使用Registry類:

var path = @"Software\Microsoft\Windows CE Services\AutoStartOnConnect"; 
using (var key = Registry.LocalMachine.OpenSubKey(path, true)) 
{ 
    if (key != null) 
    { 
     key.SetValue("AutoRun", @"d:\MyFolder\MyProgram.exe"); 
    } 
}