3

Word ドキュメントをダブルクリックすると、Word が自動的に実行され、ドキュメントが読み込まれます。

C# アプリケーションで同じことを行うには、どのような手順が必要ですか?

つまり、アプリケーションで「.XYZ」データ ファイルを使用するとします。.XYZ データ ファイルがダブルクリックされたときにアプリケーションを起動するように Windows に指示する方法を知っています。 しかし、ロードできるように選択されたデータ ファイルをアプリケーション内で確認するにはどうすればよいでしょうか。

4

5 に答える 5

2

確かにこれは VB.NET ソリューションですが、この記事では、レジストリでアプリケーションのファイル関連付けを作成する方法と、アプリケーションが起動されて適切なファイル処理を行うときにコマンド引数を取得する方法について詳しく説明しています。

C# に移植するのは簡単そうです。

于 2009-01-08T18:31:22.333 に答える
1

引数には、データ ファイルへのパスを含める必要があります。

この動作を微調整して、追加の引数を渡すことができます。この画像の例を見てください。ここで、ファイル パスは %1 で渡されます。

Quicktime ファイル関連付けダイアログ

于 2009-01-08T18:24:24.280 に答える
1

あなたが探しているのはコマンドライン引数だと思います。たとえば、.doc の [開く] アクションを見ると、おそらく「word.exe %1」のようなものが表示されます。Windows はファイルの名前を取得して %1 に置き換え、コマンド 'word.exe anything.doc' を実行します。次に、アプリケーション内から、プログラムに引数として渡されたものを確認できます。詳細については、この MSDN の記事を参照してください

于 2009-01-08T18:25:47.587 に答える
1

アプリに渡されるのは単なるコマンドライン引数だと思います。その後、Environment.GetCommandLineArgs で読み取ることができます。ファイルをアプリにドラッグ アンド ドロップする場合に当てはまることはわかっています。私はあなたが自分で説明していることをしていませんが、同じように機能すると思います.

于 2009-01-08T18:27:56.070 に答える
0

しばらく前に取り組んでいたプロジェクトでこれを行いましたが、ソースコードが手元にありませんが、実際には次のようになったと思います。

    //program.cs
    [STAThread]
    static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        if (args.Length > 0)
        {
            //launch same form as normal or different
            Application.Run(new Form1(args));
        }
        else
        {
            Application.Run(new Form1());
        }
    }

アプリケーションが正常に起動されたときはargsは空ですが、.xyzファイルへの関連付けで適切にリンクされている場合、それらのファイルの1つが選択されると、アプリケーションは文字列の最初の要素としてファイルの場所で起動されます[]。確かに、program.cs または起動フォームのいずれかに検証を追加しますが、基本レベルでは、これが必要なことだと思います。

于 2009-01-08T18:50:02.263 に答える