C#.NET Process.Start()在运行快捷方式时返回null

时间:2012-12-21 19:31:24

标签: c# .net process

好吧,我已经弄清楚了我的问题。我正在使用一些软件远程启动本地计算机上的程序。在这样做的过程中,我通过网络发送了一个我希望该机器启动的程序的路径。它使用Process.Start并存储执行路径。然后,我稍后重新发送该路径并告诉它关闭与此路径关联的进程。

Process newProcess = Process.Start(startPath);
_runningProcesses.Add(new MCProcess(startPath, new Process);

有时,我会用它来调用一个快捷方式,我使用它是因为我想传递一些命令链接参数。

我用它来调用.exe和.lnk(快捷方式扩展名),它运行程序就好了。

但是,在传递快捷方式的路径时,它返回的进程为null!因此,当我发回路径关闭程序时,进程为空,无法关闭程序。

任何解决方案?

2 个答案:

答案 0 :(得分:3)

您不需要快捷方式将参数传递给程序,只需执行以下操作:

Process process = new Process();
process.StartInfo.FileName = "\"C:\\my.exe\"";
process.StartInfo.Arguments = "arg1 arg2 arg3";
//...
process.Start();

在命令行中,它看起来像C:\ my.exe arg1 arg2 arg3

答案 1 :(得分:0)

如果需要使用快捷方式,只需获取快捷方式的目标。 Get target of shortcut folder