所以我的winform与自定义文件格式(.abc)相关联。如何获得它,以便如果单击text.abc,则winform运行并获取text.abc的内容。如何添加打开并阅读与我的WinForm相关的文本文件?
它只是作为参数传入吗?
所以我的winform与自定义文件格式(.abc)相关联。如何获得它,以便如果单击text.abc,则winform运行并获取text.abc的内容。如何添加打开并阅读与我的WinForm相关的文本文件?
它只是作为参数传入吗?
首先,你需要注册您的自定义文件扩展名,看看这篇文章:
Associate File Extension with Application
然后你的窗户里面应用程式可以读取命令参数如下:
private void Form1_Load(object sender, EventArgs e)
{
foreach (var item in Environment.GetCommandLineArgs())
{
Debug.WriteLine(item);
}
}
谢谢!这正是我需要知道的。 – MK3GTX 2014-09-19 18:05:49
如果你已经为特定的扩展程序正确地注册了你的应用程序,那么如果用户双击带有该扩展名的文件,SO就会调用你的应用程序并传递一个命令行参数,并且文件名被双击。 该框架还使用传递的命令行初始化Environment.CommandLine
属性。 您可以在程序的任何地方检索此属性,也可以使用Environment.GetCommandLineArgs
阵列。请记住,该数组的第一个元素等于程序的名称,参数从第二个元素开始。
你应该写带有参数的主入口像在控制台应用程序
static void Main(string[] args)
{
if(args.Length > 0)
{
// command line passed
string fileToProcess = args[0];
if(Path.GetExtension(fileToProcess) == ".abc")
{
// Whatever
}
}
}
完美!这正是我想知道的。谢谢你的回答,但是我将不得不给格雷戈尔“接受的答案”,因为他大约30秒击败了你。 – MK3GTX 2014-09-19 18:05:32
如果我理解正确的话,你需要在这里两件事情:1,关联与名为.abc的程序文件,在Windows和2知道如何在程序启动后检索文件名。我对吗?还是仅仅是第二点? – 2014-09-19 17:54:02
这是更多的第二部分。一旦文件被点击并且它的相关程序启动,该程序如何获取文件的信息?抱歉,模棱两可。 – MK3GTX 2014-09-19 17:55:47