一个调用命令行改IP的BUTTON,代码如下:
        private void button1_Click(object sender, EventArgs e)
        {
            Process p = new Process();
            p.StartInfo.FileName = "cmd";           //确定程序名
              p.StartInfo.UseShellExecute = false;        //Shell的使用
              p.StartInfo.RedirectStandardInput = true;   //重定向输入
              p.StartInfo.RedirectStandardOutput = true; //重定向输出
            //p.StartInfo.RedirectStandardError = true;   重定向输出错误
              p.StartInfo.CreateNoWindow = true;          //设置置不显示示窗口
              p.Start();
            p.StandardInput.WriteLine("netsh interface ip set address name=\"本地连接\" source=dhcp");  
            p.StandardInput.WriteLine("netsh interface ip set dns name=\"本地连接\"  source=dhcp");                  
            p.Close();
            MessageBox.Show("成功。");
        }问题:点击按钮后,马上弹出 成功,但IP地址还在改变之中,若马上关闭程序,则无法判断p.StandardInput.WriteLine("netsh interface ip set dns name=\"本地连接\"  source=dhcp") 是否被执行了,有什么办法,然其完整改变IP后 才弹出 成功 对话框?
由于本人新手,希望懂得人解释详细点,谢谢。

解决方案 »

  1.   

    在 
    p.StandardInput.WriteLine("netsh interface ip set address name=\"本地连接\" source=dhcp");  
    p.StandardInput.WriteLine("netsh interface ip set dns name=\"本地连接\"  source=dhcp");   
     
    后面加一个循环,每延迟几秒去读取返回信息,直到读取返回信息后为止,估计能行,试试看吧。当然,要注意死循环控制哟!
      

  2.   

    获取系统当前所有进程,查看cmd.exe是否还存在。。
      

  3.   

                Process[] processes = Process.GetProcessesByName("cmd.exe");            foreach (Process process in processes)
                {
                        process.Kill();
                }
      

  4.   

    你只是看是否有的话,久判断processes的个数