当你犯了一个参考的窗口,打开.txt文件,就像,它可能会打开NOTEPAD.EXE和或Word.exe,在加载从文件中的文本到编辑器。我怎样才能做到这一点与我的桌面应用程序。我有它的自定义文件类型的扩展名为.mmi。我想这样,当用户双击此文件类型不仅会打开我的应用程序,但加载在它的数据到我的应用程序的相应区域。我知道如何设置自定义文件类型为我的应用程序设置,但如果我失去的是如何获取文件信息触发打开我的应用程序,这样我可以从它那里得到的数据。
例如。如果我打开一个.html和选择使用NOTEPAD.EXE,在HTML现在在新打开的文本编辑器打开。
这是一个从应用程序,而不是一个控制台,与主要具有的args开始关闭应用程序,柜面,帮助或改变任何东西。
下面的例子:
公共部分类FormDashboard:表
{
公共FormDashboard()
{
的InitializeComponent();
}
私人无效FormDashboard_Load(对象发件人,EventArgs的)
{
//我要得到什么文件触发的应用程序在这里开设,并相应地应用数据throurght的表单应用程序。
}
解决方案
在回答你的问题是没有什么不同的WinForms应用程序和控制台应用程序。
在 .mmi
文件触发您的应用程序将是路径的args [0]
在您的应用程序的主
方法(假设签名主要(字串[] args)
)。
因此,了解什么 .mmi
文件是双击来触发您的应用程序将主要来自由 - 你告诉Windows打开之后。 MMI
与您的应用程序文件。
下面是一个例子 - 在这里我只是用一个文本文件 Test.mmi
和一个简单的控制台应用程序 ConsoleApplication1
对于在PoC:
/ *
* Program.cs中
* /
使用系统;
使用System.IO;
命名空间ConsoleApplication1
{
类节目
{
静态无效的主要(字串[] args)
{
如果(args.Length大于0)
{
//打开并显示在双击.mmi文件中的文本。
Console.WriteLine(File.ReadAllText(参数[0]));
}
//暂停5秒钟看到双击文件的文本。
Thread.sleep代码(5000);
}
}
}
告诉Windows打开 .mmi
文件 ConsoleApplication1.exe
, ConsoleApplication1之后。 exe文件
显示 Test.mmi文本
(