如何使用冒号参数从“运行...”调用 Windows XP 中的程序?

如何使用冒号参数从“运行...”调用 Windows XP 中的程序?

我注意到某个程序在发送参数时以特殊的方式工作。

发送参数的唯一方法是单击“开始->运行...”并输入:

[programname]:[argument]

例如(无论如何都不起作用)

notepad:textfile.txt 

如果我尝试从命令行窗口执行相同操作,则不起作用。“programname 参数”也不行。我必须能够使用来自网站的参数打开该程序(使用 Wscript shell,这是另一回事),但这可能行不通。

有人知道这个奇怪的冒号语法是如何工作的吗?

更新:根据要求,这是一个真实的例子:

AGS:pref.serv01.com(ARG1:ARG2)

这就是确切的语法,它导致程序打开 ARG1 和 ARG2 的特定信息。AGS 只是程序的名称,它是一个普通的 Windows 程序。

答案1

跑步...对话框不仅限于本地文件 - 它还接受所有 URI 方案1 挂号的例如,您可以在系统中打开http:ftp:在其中找到地址。某些程序可能只是AGS:为此目的注册了 URI 方案。(整个 URI 未经修改就传递给程序,程序可以应用自己的解析规则。)

查看HKEY_CLASSES_ROOT\AGS注册表编辑器中的项,看它是否提及有关您的程序的任何信息,是否有名为“ URL Protocol”的值,以及shell\open\command子项指向什么。


1 Windows 将它们称为“URL 协议”,这并不完全正确。

答案2

冒号字符用于指代备用数据流在 NTFS 中。也许您的程序有隐藏的数据流,其中包含可执行文件。

我认为不能通过命令行参数来完成,因为 shell 解析器会感到困惑。然而,“运行”对话框要宽容得多。

如果是的话,您可以尝试通过以下简单方法提取它:

c:> type program:argument > output

相关内容