1

ユーザーがさまざまなファイルの種類をアプリケーションに関連付けることができる MDI Windows フォーム アプリケーション (.net 2008) があります。私は現在、次のようなレジストリ エントリでこれを行っています。これにより、アプリケーションはコマンド ライン経由でファイル名を読み込んでアクセスします。

Registry.SetValue(appKey & "\shell\open\command", "", """" & _
  System.Windows.Forms.Application.ExecutablePath & """ ""%1""")

アプリケーションのプレ .net バージョンでは、DDE (レジストリの ddeexec) を使用しました。Windows エクスプローラーでファイルをダブルクリックしたときにアプリケーションのインスタンスが実行されていた場合、アプリケーションの新しいインスタンスを起動せずにファイルを開きます。

DDE が Microsoft によって廃止されたので、アプリケーションの新しいインスタンスを開始するのではなく、実行中の MDI アプリケーションがエクスプローラーでファイルをダブルクリックしたときに追加のファイルを開くための .net での最良の方法は何ですか?

4

1 に答える 1

1

理想的には、通常のファイル関連付け手法 ( doc ) と、何らかの形式のプロセス間通信を使用して、プログラムがその後の起動を処理する方法を整理できます。

たとえば、プログラムの開始時に、別のインスタンスが既に開いているかどうかを確認します。その場合は、パラメーター データを既存のインスタンスに渡し、終了します。次に、既存のインスタンスがデータを適切に処理します。

ここ(リンク)は、それを始めるための良いSOの答えです。

于 2009-08-13T19:10:00.863 に答える