vba アプリケーション (スライドショー中のパワーポイント) と、作成した .net アプリケーションの間でメッセージをやり取りしようとしています。
私が考えることができる唯一の方法は、キーストロークを送信することです。
ただし、この方法では、パワーポイントがフォーカスを失います。
解決策を提案できますか?
vba アプリケーション (スライドショー中のパワーポイント) と、作成した .net アプリケーションの間でメッセージをやり取りしようとしています。
私が考えることができる唯一の方法は、キーストロークを送信することです。
ただし、この方法では、パワーポイントがフォーカスを失います。
解決策を提案できますか?
すべてが同じマシン上で発生する場合、おそらく最も簡単な方法は、PPT がそのステータスをレジストリに書き込み、そこから他のアプリケーションが読み取れるようにすることです ( GetSetting(), SaveSetting()
)。
PTT と他のプロセスが別のマシンで実行されている場合は、ステータスを小さなテキスト ファイルに書き出して、非同期で読み取ることができます。
異なるマシン上の 2 つのプロセス/アプリケーション間の (同期) 通信のもう 1 つの方法は、ソケットを使用してネットワーク経由で情報を送信することです。
ファイル システムの操作、ソケット、または外部オブジェクトを使用せずに、vba と .net の間で通信する興味深い方法を見つけました。
まず、パワーポイント イベントを登録します。
http://www.vbaexpress.com/kb/getarticle.php?kb_id=327
次に、プレゼンテーション開始イベントで VBA のクリップボードを更新します。
http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm
3 番目に、クリップボードを .net のリスナーとして使用します。
C# でクリップボードの内容の変更を監視するにはどうすればよいですか?
最後に、プレゼンテーション終了イベントで元のクリップボードの値を復元します