【问题标题】:Double clicking a file gives "debug" as second parameter?双击文件将“调试”作为第二个参数?
【发布时间】:2013-04-06 23:00:40
【问题描述】:

当我双击某个文件时,启动的应用程序的参数根据 Process Explorer:

“C:\Program Files (x86)\MiKeSoft\PCG Tools\PcgTools.exe”调试 D:\Muziek\Korg\Workstations\Kronos\Sounds and Templates_Commercial\KRS\KRS-03\KRS-03.PCG

为什么会有调试作为第二个参数?

【问题讨论】:

  • 您是否在注册表中检查了该文件类型的文件关联?双击执行带有文件名占位符的任意命令行。如果该字符串是PcgTools.exe debug %1,您将获得观察到的行为。
  • @CodesInChaos 你是完全正确的......我添加它是为了省去一些命令行参数的麻烦......如果你将你的评论添加到答案中,我可以给它应得的分数。

标签: c# arguments


【解决方案1】:

使用描述应执行的命令行的字符串在注册表中设置文件关联。除了文件名的 %1 占位符之外,该字符串还可以包含任意附加参数。

如果字符串类似于PcgTools.exe debug %1,您将获得与您观察到的命令行类似的命令行。

正如 Raymond 所说,如果您不将 %1 括在引号中,即使文件名包含空格,shell 也不会插入它们。然后,默认命令行解析将单个文件名视为由空格分隔的多个参数,因此您通常希望使用 "%1"

在您的情况下,文件名周围没有",所以我猜您的程序使用%1 是非标准命令行解析。一些(大部分是较旧的)程序的行为是这样的,但我建议您自己的程序不要这样做。对它们使用"%1" 和标准解析。

【讨论】:

  • 另外,你不会在文件名参数两边加上引号,如果文件名包含空格会导致问题。
猜你喜欢
  • 1970-01-01
  • 2023-02-06
  • 2019-05-15
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 2011-01-31
  • 2020-05-13
相关资源
最近更新 更多