2016-07-15 69 views
0

我一直在试图让我的参数传递给我在C#中的主要方法。主要我只想捕获双击的文件路径。我有自定义扩展的文件,当它运行它打开我的程序。该部分起作用。C#没有参数传递到主要

static string file = ""; 

    [STAThread] 
    static void Main(string[] args) 
    { 
     Application.EnableVisualStyles(); 

     if (args.Length > 0) file = args[0]; 

     Application.Run(new Form1()); 
    } 

    public Form1() 
    { 
     InitializeControls(); 
    } 

我也试过这种方式,这是没有太大的不同。

static string file = ""; 

    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 

     string[] args = Environment.GetCommandLineArgs(); 
     if (args.Length > 0) file = args[0]; 

     Application.Run(new Form1()); 
    } 

    public Form1() 
    { 
     InitializeControls(); 
    } 

其值得一提的,我有这部分类。我不知道这是否会直接影响它。

我真的不需要得到参数,如果我只能得到被双击的文件,但我觉得那是唯一的方法,现在我很好奇。

我错过了什么,阻止了我能够将参数传递给我的主?

+1

你如何运行你的应用程序? –

+0

嗯,我已经设置好了,当你用扩展名双击文件时,它会打开程序。我在Visual Studio的发布设置下设置了它。 – blapaz

+0

可能是相关的:http://stackoverflow.com/questions/13654197/open-custom-file-with-own-application – Tomer

回答

1

,如果你在运行命令“FTYPE”提示您的程序类型为应显示:

YOURTYPE="yourProgram.exe" "%1" 

如果"%1"不正是这样的方式出现,那么该协会是错误的(它赢得了”将文件的名称作为参数传递)。试一试。

+0

在我的电脑上正常的cmd? – blapaz

+0

是的。只需在命令提示符下运行该命令并查找您的程序。 –

+0

我有很多东西在那里,我根本没有看到该程序。 – blapaz