0

vba アプリケーション (スライドショー中のパワーポイント) と、作成した .net アプリケーションの間でメッセージをやり取りしようとしています。

私が考えることができる唯一の方法は、キーストロークを送信することです。

ただし、この方法では、パワーポイントがフォーカスを失います。

解決策を提案できますか?

4

2 に答える 2

1

すべてが同じマシン上で発生する場合、おそらく最も簡単な方法は、PPT がそのステータスをレジストリに書き込み、そこから他のアプリケーションが読み取れるようにすることです ( GetSetting(), SaveSetting())。

PTT と他のプロセスが別のマシンで実行されている場合は、ステータスを小さなテキスト ファイルに書き出して、非同期で読み取ることができます。

異なるマシン上の 2 つのプロセス/アプリケーション間の (同期) 通信のもう 1 つの方法は、ソケットを使用してネットワーク経由で情報を送信することです。

于 2012-09-19T10:38:16.033 に答える
0

ファイル システムの操作、ソケット、または外部オブジェクトを使用せずに、vba と .net の間で通信する興味深い方法を見つけました。

まず、パワーポイント イベントを登録します。

http://www.vbaexpress.com/kb/getarticle.php?kb_id=327

次に、プレゼンテーション開始イベントで VBA のクリップボードを更新します。

http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm

3 番目に、クリップボードを .net のリスナーとして使用します。

C# でクリップボードの内容の変更を監視するにはどうすればよいですか?

最後に、プレゼンテーション終了イベントで元のクリップボードの値を復元します

于 2012-09-19T21:58:24.410 に答える