2011-02-05 42 views
4

好吧,您知道如何在Microsoft Excel或Adobe Acrobat Reader等程序中,您可以单击资源管理器中的文件,它将打开相关程序。这就是我想要我的应用程序要做的事情。现在,我知道如何在Windows中设置文件关联,以便它知道每个扩展的默认程序。我的问题是如何让我的应用程序在双击文件时打开文件。如何用我的应用程序打开文件?

我使用谷歌搜索了网络,我搜索了msdn网站,并且我搜索了包括这个网站在内的多个论坛,但是我还没有找到任何解释如何完成这个的论坛。我猜测它与主要方法的参数有关,但这只是一个猜测。

如果有人能指引我正确的方向,我可以从那里拿走它。在此先感谢您的帮助。

Shane

+0

“现在,我知道如何在Windows中设置文件关联,以便知悉各分机的默认程序”如果你已经设置好了,那么双击文件*应该*在应用程序中打开它。如果没有,那么就发布你的代码来完成这个设置,并且有人可能会告诉你为什么它不起作用。 – ChrisF 2011-02-05 19:09:18

回答

0

您将需要为您的文件扩展名创建注册表项。 This page描述得很好,您需要设置哪些键(请参阅«3.我如何创建文件关联?»)。

2

当您打开文件时,按照您所描述的方式设置关联,您的应用程序将以包含文件路径的第一个参数启动到您的文件中。

在通过单击相关文件打开应用程序后,通过从main方法中打印出args,可以以简单的方式尝试此操作。第0个元素应该是文件的路径。

现在,如果你成功地达到了这一点,现在你需要做的就是读取给定文件的内容。我相信你会在这里找到比这里更多的资源。

10

在windows中设置关联将在命令行上将文件名发送到您的应用程序。

您需要阅读应用程序main函数中的事件参数才能读取文件路径并能够在应用程序中打开它。

请参阅thisthis以了解如何访问main方法中的命令行参数。

static void Main(string[] args) 
{ 
    System.Console.WriteLine("Number of command line parameters = {0}", args.Length); 

    foreach (string s in args) 
    { 
     System.Console.WriteLine(s); 
    } 
} 
2

我想这是你在找什么:

FileInfo fi = new FileInfo(sfd.FileName); //the file you clicked or saved just point 
              //to the right file location to determine 
              //full filename with location info 

// opening file 
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = @fi.FullName; 
startInfo.WindowStyle = ProcessWindowStyle.Normal; 

Process process = new Process(); 
process.StartInfo = startInfo; 
process.Start(); 
相关问题