c# - 是否可以通过关联文件将命令行参数传递给可执行文件?

标签 c# .net windows command-line

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

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

我正在使用以下方式启动相关文件:

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

提前感谢所有帮助。

-编辑

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

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

所以一共有三个文件:

  1. 口译员
  2. 代码文件
  3. 程序试图像启动程序一样启动代码文件

此外,直接启动解释器也不是一种选择,因为它在每台计算机上的文件路径都不相同。

我希望这更清楚,但由于法律限制,我不能发布源代码。

最佳答案

您可以尝试 (未测试)更改文件关联(在高级 Pane 中)以在参数中包含 %2 %3 等(通常它只包含 %1 ) - 然而,这涉及客户端的更改,并且(更重要的是)将参数传递给文档的整个想法假定您有相同的查看器(即参数是合理的)。

IMO,更好的选择是显式启动 exe,将文档(和其他文档)作为参数传递。

例子:

receiver 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。但是客户端配置很多!

关于c# - 是否可以通过关联文件将命令行参数传递给可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036875/

相关文章:

c# - WPF到跨平台开发,最强的跨平台UI框架是什么?

c# - 在更新外键字段之前释放 DataContext

c# - 如何创建简单的短哈希值? C#

.net - 如何将 GUID 作为属性参数?

.net - 我们可以在 WPF 中调试 Xaml 吗?

iphone - 在 Windows 上模拟 iphone?

ruby - SCP 未成功完成 (1) 尝试使用 ruby​​ 从 Windows 上传到 Ubuntu 时出错

windows - 自动生成guis?

c# - 字符串。将字符替换为字符串

c# - 将参数传递给 WCF 服务构造函数