一直以为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状态。
浙公网安备 33010602011771号