10

関連している:

Windowsのフォルダとファイルの右クリックイベントに新しいアイテムを追加するにはどうすればよいですか?

HKEY_CLASSES_ROOT \ *にレジストリキーを追加して、すべてのファイルにカスタムの右クリック動詞を追加しました。最終結果は次のようになります

HKEY_CLASSES_ROOT * \ Shell \ TestRightClick \ Command

-------デフォルト=c:\ RightClickTest.exe "%1"

問題:複数のファイルを選択すると、c:\ RightClickTest.exeが数回呼び出されます(選択されたファイルの数)

必要なもの: 1つの実行可能ファイルに複数のファイルパスを渡す

4

2 に答える 2

8

迅速で汚い回避策を探している場合は、'%AppData%\ Microsoft \ Windows \ SendTo'で実行可能ファイルへのショートカットを作成できます。これで、一連のファイルを選択し、右クリックして[送信]を選択します。応用。

これにより、選択したすべてのファイルが個別のコマンドラインオプションとしてアプリケーションの1つのインスタンスに渡されます...このメソッドを使用してアプリケーションに渡すことができるファイルの数を制限する32767文字のコマンドライン制限があることに注意してください。プログラムが処理方法を知らないファイルを開こうとしないことを確認してください。長期的には、FactorMysticの方法ははるかに優れています。

于 2011-03-17T21:52:15.790 に答える
2

前の質問で述べたように、アプリケーション内でこれについてインテリジェントにする必要があります。シェル拡張機能を使用していない場合は、選択したファイルごとにプログラムの1つのインスタンスが起動されます。あなたの一般的な戦略はこれである可能性があります:

  1. ファイルパラメータ(%1)を使用してアプリケーションを起動する場合は、アプリケーションのインスタンスがすでに実行されているかどうかを確認してください。
  2. 別のインスタンスが実行されている場合は、そのアプリケーションへのある種のプロセス間通信(IPC)チャネルを開きます。
  3. このインスタンスのファイルパラメータをメインインスタンスに伝達します。
  4. メインプログラムにロジックを記述して、実行中にこの情報を受け取ることに対処します。
于 2009-12-01T18:00:01.250 に答える