一般用在域环境下读取客户机注册的配制信息 主要代码如下: private void button_Click(object sender SystemEventArgs e) { tabControlSelectedIndex=; ThreadStart threadDelegate = new ThreadStart(thisdoIt); Thread newThread = new Thread(threadDelegate); newThreadStart(); } private int number = ; private void doIt() { int maxthread = intParse(txt_numThreadText); string remoteName; progressBarValue = ; progressBarMaximum =(int)n_ipValue(int)n_ipValue; for(Decimal i = n_ipValue;i<=n_ipValue;i++) { remoteName = txt_ipStartText++iToString(); WaitCallback async = new WaitCallback(RunGet); while(true) { MonitorEnter(number); if(number>) ThreadSleep(); else break; MonitorExit(number); } if(ThreadPoolQueueUserWorkItem(asyncremoteName)) InterlockedIncrement(ref number); //RunGet(remoteName); } while(true) { //myResetEventSet(); MonitorEnter(number); if( number <= ) break; else ThreadSleep(); MonitorExit(number); } MessageBoxShow(完成); } private void RunGet(object ip) { try { RegistryKey environmentKey = null; string remoteName = ipToString(); try { // Open HKEY_CURRENT_USER\Environment // on a remote computer environmentKey = RegistryKeyOpenRemoteBaseKey( RegistryHiveLocalMachine remoteName)OpenSubKey( txt_keyText); } catch(IOException ex) { addMsg(stringFormat({}: {} remoteName exMessage)); } // Print the values // MessageBoxShow(stringFormat(\nThere are {} values for {} // environmentKeyValueCountToString() // environmentKeyName)); //addMsg(environmentKeyGetValue(AutoAdminLogon)ToString()); object result = environmentKeyGetValue(txt_valueText); if(result != null) { addMsg(stringFormat({}\t\t{}remoteNameresult)); addSuccessMsg(remoteNameresultToString()); } else { addMsg(stringFormat({}\t\t读取失败remoteName)); } // foreach(string valueName in environmentKeyGetValueNames()) // { // addMsg(stringFormat({}: {} valueName environmentKeyGetValue(valueName)ToString())); // } // Close the registry key environmentKeyClose(); } catch { } progressBarPerformStep(); InterlockedDecrement(ref number); } private void addMsg(string msg) { lb_msgItemsInsert(msg); } private void addSuccessMsg(string Ipstring value) { txt_resultText = stringFormat({}\t\t{}\r\nIpvalue)+txt_resultText; } private void button_Click(object sender SystemEventArgs e) { lb_msgItemsClear(); } private void button_Click(object sender SystemEventArgs e) { SystemIOStreamWriter sw = new StreamWriter(C:\\txtfalseSystemTextEncodingDefault); swWrite(txt_resultText); swClose(); MessageBoxShow(保存到C:\\txt); } |