【问题标题】:Starting application from data file从数据文件启动应用程序
【发布时间】:2010-09-30 07:56:37
【问题描述】:

当您双击 Word 文档时,Word 会自动运行并加载文档。

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

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

【问题讨论】:

    标签: c# double-click


    【解决方案1】:

    虽然这是一个 VB.NET 解决方案,但this article 提供了有关如何在注册表中为您的应用程序创建文件关联以及如何在您的应用程序被启动以执行正确的文件处理时检索命令参数的详细信息.

    它看起来很容易移植到 C#。

    【讨论】:

    • 这是在正确的轨道上。您需要添加应用程序安装程序代码中提到的注册表项。
    【解决方案2】:

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

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

    Quicktime File Association Dialog

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          我在不久前从事的一个项目中这样做了,手头没有源代码,但我相信它真的归结为:

              //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 还是您的启动表单中,我都会添加验证,但在基本级别,我相信这是您需要做的。

          【讨论】:

            猜你喜欢
            • 2017-01-03
            • 2014-05-14
            • 1970-01-01
            • 2014-10-31
            • 1970-01-01
            • 1970-01-01
            • 2015-12-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多