【发布时间】:2020-06-06 02:28:45
【问题描述】:
所以我在业余时间制作一个记事本副本只是为了好玩,项目的核心已经完成。但是,我无法从文件中打开我的应用程序。例如,如果您有一个 .txt 文件,双击它会打开应用程序(默认为记事本)。
我已经知道如何设置默认应用了,但是代码还不支持打开文件,只能从程序里面的菜单打开文件。
我将如何做才能让我的应用程序可以被文件打开?
【问题讨论】:
所以我在业余时间制作一个记事本副本只是为了好玩,项目的核心已经完成。但是,我无法从文件中打开我的应用程序。例如,如果您有一个 .txt 文件,双击它会打开应用程序(默认为记事本)。
我已经知道如何设置默认应用了,但是代码还不支持打开文件,只能从程序里面的菜单打开文件。
我将如何做才能让我的应用程序可以被文件打开?
【问题讨论】:
在您的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 作为一个类似记事本的应用程序的例子......但它可以工作。
file://
我喜欢你的问题。一旦您提供了对打开类型文件的支持,并且您发现您的应用程序仍然无法运行,这可能会很有用:您可以在注册表部分 HKEY_CLASSES_ROOT 下查看扩展名和操作详细信息。它讨论了默认应用程序,但它涉及更多细节。
这是页面:
Finding the default application for opening a particular file type on Windows
【讨论】: