页面上有两个按钮 btnCreateProcess,用于创建一个打开ie的进程Process csdn= Process.Start("IExplore.exe", "www.csdn.net");btnGetProcess我想获取 btnCreateProcess 创建的这个进程,这代码什么写?

解决方案 »

  1.   

    如果声明一个全局变量存取该进程ID
    int ID;btnCreateProcess按钮事件下:Process csdn= Process.Start("IExplore.exe", "www.csdn.net");
    ID=csdn.Id
    btnGetProcess 按钮事件下:
    Process csdn= Process.GetProcessById(ID);
    会报错:
    ID为 ... 的进程当前未运行我应该啥改咧?求高手教教,谢谢!!!
      

  2.   


    刚接触,不是很明白?应该是我书写得不好 btnCreateProcess 只是一个按钮,我应该在该按钮事件下写什么样的代码咧?
      

  3.   


            int id;
            private void button1_Click(object sender, EventArgs e)
            {
                Process csdn = Process.Start("IExplore.exe", "www.csdn.net");
                id = csdn.Id;
            }        private void button2_Click(object sender, EventArgs e)
            {
                MessageBox.Show((Process.GetProcessById(id)).ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }我这完全没有错
      

  4.   

    貌似是知道原因了,Process.Start()方法会“重用了现有进程”,如果事先已经打开了一个iexplorer的话,就会报错msdn的描述是:
    返回值
    类型:System.Diagnostics..::.Process与该进程关联的新的 Process 组件,或者如果没有启动进程资源(例如,如果重用了现有进程),则为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。
      

  5.   


    谢谢关注!!那是不是说我想获取该进程只能通过找到"explorer.exe"进程来确定?那如果我只是想关闭由按钮“btnCreateProcess”打开的IE什么办?
      

  6.   

                Process csdn = Process.Start("IExplore.exe", "www.csdn.net");
                csdn.WaitForInputIdle();
                int id =  csdn.Id;
      

  7.   


    如果是还未打开任何一个IE的话是对的,但只要执行前电脑已打开一个IE就会报错像 9楼 说的一样不过感谢你的关注!!