沒有錯誤,沒有例外,沒有任何東西。除了註冊表保持原樣以外,一切似乎都可以。C#:無法看到Windows註冊表中的更改
class Program
{
static void Main(string[] args)
{
try
{
Edit();
}
catch (Exception)
{
Restore(); // not included in the sample for simplicity
}
}
public static void Edit()
{
Microsoft.Win32.RegistryKey Login;
Login = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(ConfigurationManager.AppSettings["Login"].ToString());
Login.SetValue("ServerName", ConfigurationManager.AppSettings["ServerName"].ToString());
Login.SetValue("ImageServerName", ConfigurationManager.AppSettings["ImageServerName"].ToString());
Login.Close();
Microsoft.Win32.RegistryKey Login2;
Login2 = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(ConfigurationManager.AppSettings["Wow6432NodeLogin"].ToString());
Login2.SetValue("ServerName", ConfigurationManager.AppSettings["Wow6432NodeServerName"].ToString());
Login2.SetValue("ImageServerName", ConfigurationManager.AppSettings["Wow6432NodeImageServerName"].ToString());
Login2.Close();
}
}
我覺得在某處存在錯誤。但不會拋出異常。 catch塊永遠不會被擊中。
我以管理員身份運行它。我甚至沒有管理權限運行它,但它應該顯示「訪問被拒絕」或其他東西時仍然沒有錯誤。我重新啓動筆記本電腦以查看所應用的更改,但仍然沒有成功。
我使用此代碼來讀取最近添加的值,我可以看到按鍵。但不知何故這些變化沒有被應用。
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(ConfigurationManager.AppSettings["Login"].ToString());
Object o = key.GetValue("ServerName");
Console.WriteLine(o.ToString());
我使用的.Net 4.5.2,構建所有CPU,SO:Windows 7的
我需要提交更改什麼?
您可能會收到錯誤消息。你應該編輯你的代碼,以便你可以看到錯誤是什麼。 – SLaks
這就是我的想法,但控制檯顯示沒有錯誤。 catch塊永遠不會被擊中。 –
你怎麼知道?你的代碼讓你無法知道'catch'塊是否被擊中。 – SLaks