【问题标题】:Opening application with file C# Winforms使用文件 C# Winforms 打开应用程序
【发布时间】:2020-06-06 02:28:45
【问题描述】:

所以我在业余时间制作一个记事本副本只是为了好玩,项目的核心已经完成。但是,我无法从文件中打开我的应用程序。例如,如果您有一个 .txt 文件,双击它会打开应用程序(默认为记事本)。

我已经知道如何设置默认应用了,但是代码还不支持打开文件,只能从程序里面的菜单打开文件。

我将如何做才能让我的应用程序可以被文件打开?

【问题讨论】:

标签: c# winforms


【解决方案1】:

在您的void Main(string[] args) 方法中,args 将包含使用您的应用程序打开的文件的路径。您还可以通过调用string[] Environment.GetCommandLineArgs() 在应用程序的任何位置获取它们。在消息框中打印参数以查看已传递的参数。

这里有一些你可能想要使用的代码:

//In a form

public void MyButton_Clicked(object sender, EventArgs e)
{
    string[] args = Environment.GetCommandLineArgs();
    MessageBox.Show(string.Join(Environment.NewLine, args));
}

【讨论】:

  • 奇怪的选择使用MessageBox 作为一个类似记事本的应用程序的例子......但它可以工作。
  • @CodeStranger 不是用于最终版本,只是为了查看应用程序在以文件作为参数启动时收到的内容。
  • 我看到应用程序接收完整的 URI,例如 file://
  • 我使用了该解决方案,它似乎可以工作,但是从文件中打开它时我的应用程序无法打开。鼠标光标显示它已加载但应用程序未打开。
【解决方案2】:

我喜欢你的问题。一旦您提供了对打开类型文件的支持,并且您发现您的应用程序仍然无法运行,这可能会很有用:您可以在注册表部分 HKEY_CLASSES_ROOT 下查看扩展名和操作详细信息。它讨论了默认应用程序,但它涉及更多细节。

这是页面:

Finding the default application for opening a particular file type on Windows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    相关资源
    最近更新 更多