1

特定のビジネス Web アプリケーションを埋め込む WebBrowser を含む WPF ウィンドウを開くことが主な役割の Outlook アドイン (Office 2013) があります。Enter、delete、ctrl + c、ctrl-vなどの特定のキーストロークをWPF WebBrowserが受け取らないといういくつかの問題をすでに解決する必要がありました。 vsod/2010/04/08/using-shortcut-keys-to-call-a-function-in-an-office-add-in/ .

これらの問題は、少なくとも一貫していました。私が直面している最後のものは、スペースバーに関連しています。一般に、スペースは他の英数字キーと同様に扱われ、傍受する必要はありません。ただし、これはすべての場合に当てはまるわけではありません。ユーザーが特定の電子メールに Outlook をフォーカスすると (ナビゲーション ウィンドウで電子メールを選択するのではなく、右側のメイン ウィンドウで電子メールの本文をクリックすることを意味します)、Outlook はナビゲーション ショートカットとしてスペースバーを使用します。このようにして、ユーザーは電子メールの内容を閲覧し、次の電子メールに切り替えることができます。

ユーザーが右側のペインにフォーカスした後、アドイン WPF ウィンドウを開き、HTML ボックスを使用してスペースを含むテキストを提供すると、問題が発生します。その状態では、Outlook エクスプローラーではなく、WPF ウィンドウがアクティブなウィンドウであっても、Outlook は依然としてその下の Outlook エクスプローラーでナビゲートし、スペースバーを「盗んで」います。これは、Web アプリがスペースを受け取ることがないことを意味します。ナビゲーション ウィンドウで現在表示されている電子メールをクリックしても、ユーザーが現在の電子メールから「フォーカスを失った」場合にのみ、Outlook はスペースバーを介して所有権を解放したように見え、再び期待どおりに動作します。

この問題には 2 つの解決策が考えられます。

  1. アドイン WPF ウィンドウがアクティブ化されるたびに、Outlook エクスプローラーが右側のメイン ペインに現在表示されている電子メールからフォーカスを失うようにします。私はまだそれを達成する方法を見つけていません。

  2. スペースをインターセプトし、定義済みの JavaScript メソッドをトリガーしてスペースを挿入します。ただし、スペースバーが正しく機能する場合、アドインは 2 つのスペースを受け取るため、注意が必要です。

そのような問題を解決する方法はありますか?

乾杯

4

1 に答える 1