静静地发送密钥

时间:2012-09-18 22:46:17

标签: vba excel-vba powerpoint excel

我试图在vba应用程序(幻灯片中的powerpoint)和我写的.net应用程序之间传递消息。

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

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

你能建议一个解决方案吗?

2 个答案:

答案 0 :(得分:1)

如果所有这些都发生在同一台机器上,最简单的方法可能是让PPT将其状态写入注册表,而另一个应用程序将其读出(GetSetting(), SaveSetting())。

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

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

答案 1 :(得分:0)

我在vba和.net之间找到了一种有趣的通信方式,没有文件系统操作,套接字或外部对象。

首先,我们注册了powerpoint evets:

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

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

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

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

How do I monitor clipboard content changes in C#?

最后,我们在presentation-end事件

上恢复原始剪贴板值