2012-07-19 225 views
0

如何在註冊表中寫DWORD十六進制值?而不是像這個代碼示例中的十進制值?c#如何在註冊表中寫入十六進制值,而不是十進制值?

RegistryKey key = Registry.LocalMachine; 
key = klase.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Windows"); 
key.SetValue("CSDVersion2", "100", RegistryValueKind.DWord); 
key.Close(); 

解決方案是!

RegistryKey key = Registry.LocalMachine; 
key = klase.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Windows"); 
key.SetValue("CSDVersion2", Convert.ToInt32("100", 16), RegistryValueKind.DWord); 
key.Close(); 
+0

我解決了這個問題!感謝您的提前! – deleted 2012-07-19 21:26:57

+0

發佈您的解決方案 – Jones 2012-07-20 16:35:16

+1

我發佈瞭解決方案! – deleted 2012-07-20 20:20:34

回答

0

使用Convert.ToInt32(...)過載。

string strHexValue = Convert.ToInt32("100", 16).ToString(); 

其中16是基數。

+0

不起作用! :( – deleted 2012-07-19 21:21:30

+0

我的小改動代碼!Adn工作!謝謝! – deleted 2012-07-19 21:24:30

2

SetValue需要一個對象,所以你可以給它一個普通的ol'整數。我會做這樣的事情:

key.SetValue("CSDVersion2", 0x100, RegistryValueKind.DWord); 

這將CSDVersion2設置爲十進制0x100十六進制或256。

+0

我相信這是更多關於如何從'int'轉換爲'hex' – Tigran 2012-07-19 21:25:00

+0

@Tigran我想OP是問如何給SetValue一個十六進制文字。在嘗試設置DWORD時,給SetValue一個字符串似乎有點奇怪。 – vcsjones 2012-07-19 21:26:25