我正在尝试在 vba 应用程序(在幻灯片放映期间在 powerpoint 中)和我编写的 .net 应用程序之间传递消息。
我能想到的唯一方法是发送击键。
但是,这种方法会导致 powerpoint 失去焦点。
你能提出一个解决方案吗?
我正在尝试在 vba 应用程序(在幻灯片放映期间在 powerpoint 中)和我编写的 .net 应用程序之间传递消息。
我能想到的唯一方法是发送击键。
但是,这种方法会导致 powerpoint 失去焦点。
你能提出一个解决方案吗?
如果这一切都发生在同一台机器上,最简单的方法可能是让 PPT 将其状态写入注册表,其他应用程序从注册表中读取它(GetSetting(), SaveSetting()
)。
如果 PTT 和其他进程在不同的机器上运行,您可以考虑将状态写入一个可以异步读取的小文本文件中。
不同机器上的两个进程/应用程序之间(同步)通信的另一种方式是使用套接字并通过网络发送信息。
我发现了一种在 vba 和 .net 之间进行通信的有趣方式,无需文件系统操作、套接字或外部对象。
首先,我们注册 powerpoint 事件,如下所示:
http://www.vbaexpress.com/kb/getarticle.php?kb_id=327
其次,我们在演示开始事件上更新 VBA 中的剪贴板:
http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm
第三,我们在 .net 上使用剪贴板作为侦听器:
最后,我们在演示结束事件上恢复原始剪贴板值