电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

远程注册表读取,与多线程池的应用


发布日期:2018/10/19
 
一般用在域环境下读取客户机注册的配制信息

主要代码如下:

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);

}

上一篇:不需PE盘用微软雅黑就可替换win7中的宋体

下一篇:Windows XP/2003中EFS的新特