好的,您知道如何在Microsoft Excel或Adobe Acrobat Reader等程序中单击资源管理器中的文件,它将打开相关程序。这就是我希望我的应用程序做的事情。现在,我知道如何在Windows中设置文件关联,以便它知道每个扩展的默认程序。我的问题是当我双击文件时,如何让我的应用程序打开文件。
我使用谷歌搜索网页,我搜索了msdn网站,我搜索了几个论坛,包括这个,但我没有找到任何解释如何实现这一点。我猜这与主方法的参数有关,但这只是猜测。
如果有人能指出我正确的方向,我可以从那里拿走它。在此先感谢您的帮助。
沙恩
答案 0 :(得分:10)
在Windows中设置关联将在命令行上将文件名发送到您的应用程序。
您需要阅读应用程序main
函数中的事件参数,以便读取文件路径并能够在您的应用程序中打开它。
请参阅this和this,了解如何访问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);
}
}
答案 1 :(得分:2)
当您打开文件时,如上所述设置了关联,您的应用程序将以包含文件路径的第一个参数启动。
通过点击关联文件打开应用程序后,您可以通过从args
方法打印出main
,以一种简单的方式尝试此操作。第0个元素应该是文件的路径。
现在,如果您成功达到了这一点,那么您现在需要做的就是读取给定文件的内容。我相信你会在这里找到更多关于如何做到这一点的资源。
答案 2 :(得分: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();
答案 3 :(得分:0)
您需要为文件扩展名创建注册表项。 This page描述的很好,您需要设置哪些密钥(参见«3.如何创建文件关联?»)。