就像您在 Windows 中进行引用一样,要打开 .txt 文件,它可能会打开 NotePad.exe 和/或 Word.exe,同时将文件中的文本加载到编辑器中。如何使用我的桌面应用程序执行此操作。我有一个扩展名为 .mmi 的自定义文件类型。我希望这样当用户双击此文件类型时,它不仅会打开我的应用程序,还会将其中的数据加载到我的应用程序的适当区域。我了解如何为我的应用程序设置设置自定义文件类型,但我迷失的是如何获取触发打开我的应用程序的文件信息,以便我可以从中获取数据。
例如。如果我打开 .html,并选择使用 notepad.exe,则该 html 现在会加载到新打开的文本编辑器中。
这是针对 From 应用程序的,而不是以具有参数的 main 开始的控制台应用程序,以防帮助或更改任何内容。
下面的例子:
public partial class FormDashboard : Form
{
public FormDashboard()
{
InitializeComponent();
}
private void FormDashboard_Load(object sender, EventArgs e)
{
//I want to get what file trigger the app to open here, and apply the data accordingly throurght the forms application.
}
对于 WinForms 应用程序和控制台应用程序来说,您的问题的答案没有什么不同。
的路径.mmi
触发您的应用程序的文件将是args[0]
在你的应用程序中Main
方法(假设签名Main(string[] args)
).
所以知道什么.mmi
双击文件以触发您的应用程序基本上是免费的 - 在您告诉 Windows 打开之后.mmi
文件与您的应用程序。
这是一个例子 - 我刚刚使用了一个文本文件Test.mmi
和一个简单的控制台应用程序ConsoleApplication1
对于 PoC:
/*
* Program.cs
*/
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
if (args.Length > 0)
{
// Open and display the text in the double-clicked .mmi file.
Console.WriteLine(File.ReadAllText(args[0]));
}
// Pause for 5 seconds to see the double-clicked file's text.
Thread.Sleep(5000);
}
}
}
告诉 Windows 打开后.mmi
文件与ConsoleApplication1.exe
, ConsoleApplication1.exe
显示文本Test.mmi
(Whatever....
)当我双击它时:
与我提供的 PoC 唯一不同的是您需要对以下文件路径执行任何操作args[0]
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)