2016-07-15 22 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(); 
    } 

私はこれを部分クラスに入れておきましょう。それが直接的に影響するかどうかはわかりません。

ダブルクリックされたファイルを取得できれば、私は本当にargsを取得する必要はありませんが、それが唯一の方法であると感じるようになりました。今は興味があります。

私の主なものにargsを渡すことができなくなっているのは何ですか?

+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

関連する問題