2016-04-05 10 views
-1

のデフォルトのアプリとして私のアプリを出せファイル拡張子はmpxml(my project xml)です。実際のファイルタイプは少しわかりやすいですが、mpxmlを使って簡単に行えます。C#が、私は私が何かを見下ろす、または(それはXMLでだ)私はプロジェクトファイルを保存し、アプリケーションを持っているquestion-</p> <p>権利を探しておりません確信しているファイルの種類

私は、プログラムをファイルタイプのデフォルトアプリケーションにする方法を知っていると思いますが、わからない、見つからないものは、起動時にそのファイル名がアプリケーションに渡される方法です。

frmMainを持っているでしょう
if (Application.Arguments.Filename != null) 
{ 
Application.Run(new frmMain(Application.Arguments.Filename)); 
} 

IE、私のようなものを描いてる私が.mpxmlファイルをダブルクリックし、それは私のアプリケーションを開き、私のアプリケーションは、そのファイルを開く...

ロードされたロードプロジェクトメソッドにファイルパスを送信するオーバーロードされたメソッド。

編集: これは重複しているとマークされていましたが、以前はリンクされた回答を表示していましたが、私の質問に直接答えたようには感じませんでした。関連するファイル

+1

Application.Arguments [0] –

+0

申し訳ありませんが、このメソッド/コレクションがアプリケーションクラスhttps://msdn.microsoft.com/en-us/library/system.windows.formsに表示されません。アプリケーション%28v = vs.110%29.aspx – user1778608

答えて

0

申し訳ありません、適切な用語を使用して追加のグーグルで自分自身の質問に答えました。

私はこれを公開frmMain()に配置しました。問題が解決しました。プロフェッショナル維持。

foreach (string arg in Environment.GetCommandLineArgs()) 
{ 
    if (arg.Contains(".mspxml")) { loadProject(arg); } 
} 

配列の最初の項目は常にビルド対デバッグバージョンを実行している場合は異なりますexeファイルの名前であるかのように思えます。いずれにせよ、私はそれを.Containsに基づいてファイルを開こうとすることに制限することができました。ファイルが有効なプロジェクトファイルでない場合、loadProjectメソッドにはすでにエラー処理が含まれています。

関連する問題