none
C程序分别运行D、E程序,是否可以分别设置D和E的CurrentDirectory,且不会三方互相干扰 RRS feed

  • 问题

  • 问题环境描述:
    现有C:\C.exe、D:\D.exe、E:\E.exe各一个。
    C:\C.exe内编写此代码:
    System.Diagnostics.Process.Start("D:\D.exe");
    System.Diagnostics.Process.Start("E:\E.exe");
    然后执行C.exe.
    那么D:\D.exe、E:\E.exe在获取CurrentDirectory的时候会得到C:\,而不是各自的目录,
    由于D.exe和E.exe都需要调用各自目录里的相对资源文件所以这种调用方式不能满足需求。

    是否有方法可以同时满足下面的两个条件:
    1. C:\C.exe分别调用D:\D.exe及E:\E.exe
    2. 三个exe的CurrentDirectory为各自的目录





    2010年10月13日 5:21

答案

  • 虽然我没测试,但是方法貌似找到了,看文档好像也是对的。


                    ProcessStartInfo info = new ProcessStartInfo();
                    info.CreateNoWindow = true;
                    info.FileName = exePath;
                    info.UseShellExecute = true;
                    info.WorkingDirectory = workingDirectory;
                    Process.Start(info);

    • 已标记为答案 zero zhang 2010年10月13日 6:26
    2010年10月13日 6:26