程序在执行过程中,需要在DOS窗口中新启动一个记事本程序,在dos中如下操作
C:\notepad.exe
执行其他操作后,关闭这个记事本。用Process.GetProcessesByName("notepad")的话,可能关闭已经打开的其他记事本。请问如何能获取在DOS窗口中启动的这个记事本进程的ID,这样就可以用Process.GetProcessById(ID)来获取它并关闭了。
谢谢!注:记事本只是举例,也可能在DOS窗口中打开其他程序,如word等。但都会遇到这个问题。

解决方案 »

  1.   

    这样恐怕很难获取.你开发一个命令行C#程序,在程序内部使用Process.Start方法来创建线程不行吗,这样你就可以在DOS窗口中调用该程序来创建进程,并返回进程ID.
      

  2.   

    上面说错了。是在DOS程序中直接运行一个txt文件,如:
    C:\note.txt
    这时启动一个notepad.exe程序,如何获取这个记事本的进程ID?谢谢。
      

  3.   

    用WMI进程监视?可以在有新进程创建是得到通知。不过感觉有这样的需求应该是设计上出来问题。
      

  4.   

    C:\note.txt 在DOS下能运行上面的命令吗?晕!!!!