是否有可能通过关联的文件将命令行parameter passing给可执行文件?

我有一个程序,将命令行parameter passing给一个可执行文件的关联文件(即关联的文件扩展名)。 可执行文件永远不会收到参数。 但是,如果直接启动可执行文件并将其传递给关联文件的path和参数,那么它将同时接收文件path和参数。

  • 操作系统:Windows XP
  • 编程语言:C#

我正在开始使用关联的文件:

System.Diagnostics.Process.Start(filepath, arguments) 

预先感谢所有的帮助。

-编辑

基本上,我有一个编程语言解释器,需要接收由C#程序传递给它的命令行参数。

如果我使用C#程序启动代码文件,则解释器将启动,但不会接收由C#程序传递给代码文件的命令行参数。

所以总共有三个文件:

  1. 口译员
  2. 代码文件
  3. 该程序试图启动代码文件,就像它是一个程序

另外,直接启动解释器不是一个选项,因为它不在每台计算机上的相同文件path上。

我希望这是更清晰的,但我不能发布的源代码做法律限制。

您可以尝试 (未经测试)更改文件关联(在高级窗格中)以在参数中包含%2%3等(通常它只包含%1) – 但是,这涉及客户端的更改,更重要的是将参数传递给文档的整个想法都假定你有相同的观察者(即参数是合理的)。

国际海事组织,更好的选择是明确启动exe文件,通过文件(和其他人)的论据。

例:

接收器exe(只显示收到的命令参数):

 static class Program { [System.STAThread] static void Main(string[] args) { System.Windows.Forms.MessageBox.Show(string.Join("|", args)); } } 

然后:创建一个“foo.flibble”文件,右键单击/打开并与我的接收器关联; 进入档案协会,“flibble”,高级,“打开”,编辑,并添加%2%3%4

然后在一个单独的exe:

 Process.Start(@"c:\foo.flibble", "test of args"); 

这表明:

 c:\foo.flibble|test|of|args 

所以这现在已经通过文档传递给exe的额外参数。 但是很多客户端配置!