1

エクスプローラーから別のタブにファイルを開く方法。[開く]メニューをファイルタイプに関連付けることができます。プログラムを既に動作させているときに、新しいプログラムではなく、新しいファイルを別のタブで開く方法を説明します。名前ではなく、すでに実行中のプロセスを正確に見つけて、ファイル名を送信する方法。

はっきりさせておきますが、アプリを単一インスタンスにしたいので、ユーザーが10個のテキストファイルを選択してEnterキーを押すと、アプリケーションは10個のプロセスを作成するのではなく、10個のテキストファイルすべてを10個のタブで開きます。どうやってするか?同じプロセスのさまざまなインスタンス間で通信する方法。

解決済みの編集:C#のWM_COPYDATAとcodeprojectのSingleApplicationクラスを使用して機能を実装しました。

4

1 に答える 1

1

この質問であなたが何を意味しているのかよくわかりません。Windows Explorer ウィンドウをタブ付きの 1 つのウィンドウに開こうとしていますか? その場合は、Windows Explorer を拡張してそのような動作を可能にするQT TabBarを調べることをお勧めします。

または、Web ブラウザーの新しいタブへのリンクを開こうとしている可能性があります。その場合、この動作は Web ブラウザー自体によって定義されます。Internet Explorer 7 の場合、[ツール] > [インターネット オプション]でこの動作を設定できます。

[全般] タブで、[タブ] セクションの横にある [設定] ボタンをクリックします。「他のプログラムからのリンクを開く:」オプションを設定して、新しいタブを開くことができます。

この動作は各ユーザーによって定義されることに注意してください。ユーザーが自分と同じブラウザー設定を使用することを保証することはできません。


皆さんのコメントを読んで、少し理解が深まったと思います。アプリケーションで一度に 1 つのインスタンスのみを許可する必要があるようです。この投稿に C# というタグを付けたので、プログラムを書いているのはそれだと思います。

Codeproject.com には、プログラムで 1 つのインスタンスのみを許可する方法に関する優れたチュートリアルがあります。

彼らのサイトからのコードのスニペットは次のとおりです。

static void Main() 
{
   if(SingleInstance.SingleApplication.Run() == false)
   {
      return;
   }
   //Write your program logic here
}

return ステートメントの直前にコードを記述して、既存のインスタンスが新しいタブでファイルを開くようにする必要があります。

あなたのプログラムが何をしているかについての詳細な情報を提供することができれば、私たちはいくつかの詳細についてあなたを助けることができるかもしれません.

于 2009-02-03T15:23:08.703 に答える