从数据文件启动应用程序

时间:2009-01-08 18:17:02

标签: c# double-click

双击Word文档时,将自动运行Word并加载文档。

使用C#应用程序执行相同操作需要哪些步骤?

换句话说,假设我的应用程序使用“.XYZ”数据文件。我知道如何在双击.XYZ数据文件时告诉Windows启动我的应用程序。 但是如何在我的应用程序中找到所选择的数据文件以便我可以加载它?

5 个答案:

答案 0 :(得分:2)

当然这是一个VB.NET解决方案,但this article详细说明了如何在注册表中为应用程序创建文件关联,以及如何在应用程序启动时检索命令参数文件处理。

将端口移植到C#看起来很容易。

答案 1 :(得分:1)

参数应包含数据文件的路径。

您可以调整此行为并传递其他参数。请看这张图片中的示例。这里文件路径以%1传递。

Quicktime File Association Dialog

答案 2 :(得分:1)

我认为你要找的是命令行参数。例如,如果您查看.doc的Open操作,您可能会看到类似'word.exe%1'的内容。 Windows将获取文件的名称并将其替换为%1,然后执行命令'word.exe whatever.doc'。然后,从应用程序中,您可以看到作为参数传递到程序see this MSDN article for more details中的内容。

答案 3 :(得分:1)

我相信它只是一个传递到你的应用程序的命令行参数。然后,您可以使用Environment.GetCommandLineArgs读取它。我知道如果您将文件拖放到应用程序上就是这种情况。我没有完成你自己描述的内容,但我认为它的工作方式相同。

答案 4 :(得分:0)

我是在一个我前一段时间工作的项目中做到的,并且没有方便的源代码,但我相信它真的归结为:

    //program.cs
    [STAThread]
    static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        if (args.Length > 0)
        {
            //launch same form as normal or different
            Application.Run(new Form1(args));
        }
        else
        {
            Application.Run(new Form1());
        }
    }
当应用程序正常启动时,

args为空,但是当您在关联中正确链接到.xyz文件时,当选择其中一个文件时,将以文件位置作为第一个元素启动应用程序字符串[]。当然无论是在program.cs还是你的启动表单中,我都会添加验证,但在基础层面我相信这是你需要做的。