WMI

2013-06-04 5 views
5

का उपयोग कर रजिस्ट्री कुंजियां पढ़ना मैं WMI का उपयोग करके रजिस्ट्री कुंजी को पढ़ने की कोशिश कर रहा हूं। मैंने निम्नलिखित कोड के साथ प्रयास किया है लेकिन मैं रजिस्ट्री कुंजी मान प्राप्त करने में असमर्थ हूं।WMI

क्या कोई इस समस्या के बारे में मेरी मदद कर सकता है।

ConnectionOptions oConn = new ConnectionOptions(); 
System.Management.ManagementScope scope = new System.Management.ManagementScope(@"\\" +hostname + @"\root\cimv2", oConn); 

scope.Connect(); 
ManagementClass registry = new ManagementClass(scope, new ManagementPath("StdRegProv"), null); 
ManagementBaseObject inParams = registry.GetMethodParameters("GetStringValue"); 
inParams["sSubKeyName"] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\.NETFramework"; 
inParams["sValueName"] = "InstallRoot"; 


ManagementBaseObject outParams = registry.InvokeMethod("GetStringValue", inParams, null); 

if (outParams.Properties["sValue"].Value != null) 
{ 
output = outParams.Properties["sValue"].Value.ToString(); 

} 

नोट: मैं केवल WMI का उपयोग कर रजिस्ट्री कुंजी को पढ़ना चाहता हूं।

+1

आपको क्या परिणाम मिलता है? अपवाद/त्रुटि, शून्य मान या अप्रत्याशित मूल्य? – Marcus

उत्तर

3

आपको hDefKey (हाइव) पैरामीटर का मान निर्धारित करना होगा और sSubKeyName पैरामीटर से हाइव हटा दें।

inParams["hDefKey"] =0x80000002;// HKEY_LOCAL_MACHINE; 
inParams["sSubKeyName"] = "SOFTWARE\\Microsoft\\.NETFramework"; 
संबंधित मुद्दे