Для сетевого гриппа sh я обычно открываю командную строку с правами администратора и набираю следующие команды:
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
Мне нужно выполнить эти пять команд в c# код
Прямо сейчас у меня есть код только для выпуска и обновления, который работает. Ниже приведен код этого.
public bool FlushAllNetworks()
{
try
{
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
//Need to determine which adapter here with some kind of if() statement
objMO.InvokeMethod("ReleaseDHCPLease", null, null);
objMO.InvokeMethod("RenewDHCPLease", null, null);
}
}
catch (Exception ex) {
return false;
}
return true;
}
Любая помощь будет оценена. Спасибо.
РЕДАКТИРОВАТЬ: Я нашел ответ. Я принял предложение от Амира Хосейна и внес небольшую поправку. Ниже приведено решение для моего собственного вопроса.
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Verb = "runas";
startInfo.Arguments = "/C netsh winsock reset & netsh int ip reset & ipconfig /release & ipconfig /renew & ipconfig /flushdns";
process.StartInfo = startInfo;
process.Start();