Process.Start触发Enviroment的改变

Posted on 2011-11-04 18:25  Ticky  阅读(369)  评论(0)    收藏  举报

一直以为Process.Start("文件路径")后,这个文件的运行就会脱离当前程序环境,以前用了很多次,也一直这样认为。

今天刚好碰到一个程序,也是要用Process.Start的,但却不成功,很苦恼。

在通过反编译一步步跟踪程序后,锁定了“System.Environment.CurrentDirectory”。估计应该是虽然运行新程序,但Environment却没有改变,仍然保持了当前状态,我尝试着将两个程序放在同一目录下,果然成功了!

问题找到了,原因也知道,接下来就是纠正。以下就是示例:

var info=new System.Diagnostics.ProcessStartInfo("文件路径");
info.UseShellExecute = true;
info.WorkingDirectory= "文件目录";          

System.Diagnostics.Process.Start(info);

为新调用的程序创建一个新的进程实例,同时指定程序的文件目录,从而改变Environment状态。


 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3