次のシナリオがあります。
私のアプリは、コマンド ラインからデータを取得します。
初めて実行された後、私のアプリは常に 1 つのインスタンスを実行し、そのインスタンスは、必要のないときにフォームを非表示にするのではなく、明示的にシャットダウンするように指示されるまでメモリ内にあります。
ユーザーがアプリを 2 回目に実行しようとすると、プロセスが開始され、メモリ内に別のプロセスがあるかどうかがチェックされます。それが true の場合は、コマンド ラインから取得したデータを使用して、メモリ内のプロセスに WM_COPYDATA メッセージが送信されます。終了します。
アプリを実行するのがユーザーである場合、それはすべてうまく機能します。
Microsoft Word 2003 ツールバーから実行する必要があったため、そのために「アドイン」を使用しました。問題は、(Process クラスを使用して) そのアドインからアプリを起動すると、既にメモリ内にあるプロセスが WM_COPYDATA メッセージではなく WM_ACTIVATEAPP メッセージを取得しているように見えるため、必要なデータを取得できないことです。アドインによって開始されたプロセス。
なぜそれが起こっているのか、それを修正する方法はわかりません。私は何時間もグーグルで検索しましたが、何も役に立ちませんでした...
誰でも助けることができますか?