0

我正在尝试在 vba 应用程序(在幻灯片放映期间在 powerpoint 中)和我编写的 .net 应用程序之间传递消息。

我能想到的唯一方法是发送击键。

但是,这种方法会导致 powerpoint 失去焦点。

你能提出一个解决方案吗?

4

2 回答 2

1

如果这一切都发生在同一台机器上,最简单的方法可能是让 PPT 将其状态写入注册表,其他应用程序从注册表中读取它(GetSetting(), SaveSetting())。

如果 PTT 和其他进程在不同的机器上运行,您可以考虑将状态写入一个可以异步读取的小文本文件中。

不同机器上的两个进程/应用程序之间(同步)通信的另一种方式是使用套接字并通过网络发送信息。

于 2012-09-19T10:38:16.033 回答
0

我发现了一种在 vba 和 .net 之间进行通信的有趣方式,无需文件系统操作、套接字或外部对象。

首先,我们注册 powerpoint 事件,如下所示:

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

其次,我们在演示开始事件上更新 VBA 中的剪贴板:

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

第三,我们在 .net 上使用剪贴板作为侦听器:

如何在 C# 中监视剪贴板内容更改?

最后,我们在演示结束事件上恢复原始剪贴板值

于 2012-09-19T21:58:24.410 回答