C#从参数加载文件

时间:2010-12-23 05:24:49

标签: c# arguments

在我的应用程序中我已经使用我的应用程序(它是一个标签式记事本应用程序)注册了一个文件类型(.asm),当这些文件被双击时,它们会通过我的应用程序通过加载时传递的参数打开: / p>

    static void Main(string[] args)
    {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Main(args));
    }

现在的问题是,虽然这确实有效,但是如果我的应用程序的一个实例已在运行,那么无论何时打开文件,都会创建一个新的实例,而不是在当前实例中打开一个新选项卡。不想要。所以我想到检查程序是否已经运行,如果是,那么我会在主窗体中调用一个单独的函数来加载该文件。但问题是,我不知道你如何从Program.cs调用Main.cs中的函数,我们该怎么做?

2 个答案:

答案 0 :(得分:2)

这比仅从Main.cs调用Program.cs中的函数更复杂,因为操作系统会在您双击已注册文件时为您启动第二个进程。您需要某种方法来确定是否还有其他现有流程在运行,然后与现有流程进行通信(如果有)。

幸运的是,.NET Framework中有一个类已经为您完成了所有艰苦的工作:

Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase

请参阅此博客以获取完整示例: http://windowsclient.net/blogs/suryahg/archive/2008/08/20/use-of-microsoft-visualbasic-applicationservices-part-2.aspx

答案 1 :(得分:1)

这个问题中的技巧可能会有所帮助:

C# : how to - single instance application that accepts new parameters?