【问题标题】:C# .NET Process.Start() returning null when running shortcutsC# .NET Process.Start() 在运行快捷方式时返回 null
【发布时间】:2012-12-21 19:31:24
【问题描述】:

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

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

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

我已经用它来调用 .exe 和 .lnk(快捷方式扩展名),它可以正常运行程序。

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

有什么解决办法吗?

【问题讨论】:

  • 有什么特殊原因不能在 exe 上调用命令行参数?
  • @TyrionLannister 你能详细说明一下吗?
  • 我不明白你的困惑。为什么不能将参数传递给 exe?
  • @TyrionLannister 请详细说明如何将参数传递给 exe?
  • Process.Start(@"C:\myExe.exe argument1"); ?

标签: c# .net process


【解决方案1】:

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

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

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

【讨论】:

  • 然后我可以将 args 与 startPath 一起传递吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多