2013-02-08 37 views
2

我遇到問題。我執行下面的代碼。之後,我看着註冊表文件,「test.reg」文件沒有添加。你怎麼看待這個問題什麼執行* .reg文件

註冊表編輯文件的內容是:

REGEDIT4 

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\efe] 

"key1"="value" 
"key2"="value2" 

代碼:

static void Main() 
    { 
     Process regeditProcess = Process.Start("regedit.exe", "/s " + @"D:\Projects\efe\efe\bin\Debug\test.reg"); 
     regeditProcess.WaitForExit(); 

     Console.WriteLine("Press any key to continue."); 
     Console.ReadKey(); 
    } 

感謝您的意見...

+1

您確定您的應用程序具有管理權限嗎? 。如果是,請嘗試將reg文件放入應用程序的根目錄,並將D:\ ...僅更改爲test.reg。 –

+0

您需要以管理員身份訪問註冊表。你是否以管理員身份運行VS?你有沒有捕獲的異常? –

+0

我沒有得到任何exception.and我相信關於註冊表的管理。我擁有它 –

回答

3

如果你有管理權限,這應該工作,如果不是,你可以嘗試從C#直接創建註冊表項:

Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"Software\Wow6432Node\efe"); 
     Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Software\Wow6432Node\efe",true).SetValue("key1", "value", Microsoft.Win32.RegistryValueKind.String); 

我從頭部輸入了代碼,所以你可能需要做一些改變。爲此,您還需要對您的應用程序擁有管理權限。

+0

我試過你的代碼,但我得到了異常。但例外情況是:「該參數不正確。」 on「Registry.LocalMachine.CreateSubKey(@」HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ efe「);」 –

+0

我現在編輯了代碼,現在它工作。 –

+0

另一個例外。例外是:「無法寫入註冊表項」。在這個「Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@」Software \ Wow6432Node \ efe「)。SetValue(」key1「,」value「,Microsoft.Win32.RegistryValueKind.String);」 –