当用户双击其关联文件时,如何打开应用程序?

时间:2009-03-03 07:23:46

标签: c#

我正在创建一个使用某种文件格式作为其数据源的应用程序。我希望每当用户双击此文件时打开此应用程序,例如当用户双击Word文档时MS Word将如何打开。我该如何做到这一点?另外,我如何使用用户选择的文件填充数据字段。我会使用program.cs类中的args []吗?我正在使用c#来编写这个应用程序。

N.B。我希望在主机上安装应用程序时无需用户执行任何操作即可建立此关联。

7 个答案:

答案 0 :(得分:8)

FIRST ,您需要设置文件关联,以便您的文件类型与您的应用程序相关联,并且打开文件类型将运行您的应用程序。

你可以以编程方式进行文件关联,这里有一些细节如上所述:   http://www.codeproject.com/KB/dotnet/System_File_Association.aspx

如果您有应用程序,也可以通过您的安装项目来完成。这是“新手”的更容易路径。有关使用visual studio获取安装项目以添加文件关联以及设置文件图标的详细信息,请访问:   http://www.dreamincode.net/forums/topic/58005-file-associations-in-visual-studio/

否则,如果您使用InnoSetup,Wix等,那么我想您可以看到这些安装人员为您创建关联的说明。

SECOND ,您需要让您的应用程序接受命令行参数。打开的文件作为命令行参数传递。您需要处理参数以获取文件路径/名称并打开给定文件。这里有一个很好的描述代码:   C# Command Line arguments problem in Release build

在您的情况下,您将调用您的定制参数解析方法,而不是显示处理程序中的MessageBox.Show(s)。 对于只接受文件名作为参数打开的简单应用程序,这可能就像

一样简单
foreach (string filePathName in Args)
                DoNamedFileOpen(filePathName);

您的代码也可以有一个方法,可以从文件中提取您感兴趣的数据字段的值等。

对于在安装应用程序时设置文件关联,使用图标以及让应用程序处理这些文件的打开问题,这是一个很好的简单方法。

当然,还有很多其他选项,比如运行时文件关联(询问用户是否需要关联),检测“损坏”关联等等。

这个问题很长一段时间,但我希望这对新搜索很有用

答案 1 :(得分:1)

this。如果您需要API信息,请this

答案 2 :(得分:1)

ClickOnce也支持从.NET 3.5 SP1开始的文件关联。在项目的属性中,切换到Publish标签,然后点击Options按钮。该对话框中有一个File Associations部分,允许您指定文件扩展名,说明和自定义图标。

答案 3 :(得分:0)

首先,您必须将文件类型扩展与可执行文件相关联。在Windows上,您可以通过注册表(搜索“文件类型关联窗口”)执行此操作。在这个问题中,您会发现一些有趣的提示:Filetype association with application (C#) Script to associate an extension to a program

您的程序必须对命令行参数或参数做出反应。在Java中,它确实是main方法的字符串数组。我会说,在C#中它是一样的。

答案 4 :(得分:0)

如果您不需要以编程方式执行此操作,请右键单击图标,单击打开...,然后选择“始终使用此程序...”。

答案 5 :(得分:0)

这通常是由您的安装程序处理的。我使用了INNO setup例如,当双击关联的文件扩展名时,安排它调整用户注册表以启动应用程序非常简单/打开。它甚至会为你处理MIME类型以及在卸载时清除这些内容,这是一件非常好的事情

答案 6 :(得分:0)

我设法解决了这个问题。我使用WIX创建了一个安装文件,并要求它在安装时将文件与应用程序相关联。