好吧,我已经弄清楚了我的问题。我正在使用一些软件远程启动本地计算机上的程序。在这样做的过程中,我通过网络发送了一个我希望该机器启动的程序的路径。它使用Process.Start并存储执行路径。然后,我稍后重新发送该路径并告诉它关闭与此路径关联的进程。
Process newProcess = Process.Start(startPath);
_runningProcesses.Add(new MCProcess(startPath, new Process);
有时,我会用它来调用一个快捷方式,我使用它是因为我想传递一些命令链接参数。
我用它来调用.exe和.lnk(快捷方式扩展名),它运行程序就好了。
但是,在传递快捷方式的路径时,它返回的进程为null!因此,当我发回路径关闭程序时,进程为空,无法关闭程序。
任何解决方案?
答案 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