所以我的winform与自定义文件格式(.abc)相关联。我如何拥有它,以便在单击text.abc时,winform运行并获取text.abc的内容。
它只是作为参数传递吗?
答案 0 :(得分:1)
首先,您需要注册自定义文件扩展名,看一下这篇文章:
Associate File Extension with Application
然后在你的Windows应用程序中你可以读取这样的命令参数:
private void Form1_Load(object sender, EventArgs e)
{
foreach (var item in Environment.GetCommandLineArgs())
{
Debug.WriteLine(item);
}
}
答案 1 :(得分:1)
如果您已正确注册特定扩展名的应用程序,那么如果用户双击具有该扩展名的文件,则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
}
}
}