我试图在vba应用程序(在powerpoint-幻灯片放映期间)和我写的.net应用程序之间传递消息。悄悄地发送密钥
我能想到的唯一方法就是发送按键。
但是,此方法导致powerpoint失去焦点。
你能提出一个解决方案吗?
我试图在vba应用程序(在powerpoint-幻灯片放映期间)和我写的.net应用程序之间传递消息。悄悄地发送密钥
我能想到的唯一方法就是发送按键。
但是,此方法导致powerpoint失去焦点。
你能提出一个解决方案吗?
我发现了一种有趣的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#?
最后,我们恢复对演示文稿,结束事件的原始剪贴板值
如果发生在同一台计算机上,最简单的方法可能是让PPT将其状态写入注册表,其他应用程序将其状态写入(GetSetting(), SaveSetting()
)。
如果PTT和其他进程在不同的机器上运行,您可以考虑将状态写入可以异步读出的小文本文件中。
不同机器上两个进程/应用程序之间(同步)通信的另一种方式是使用sockets并通过网络发送信息。
这两个应用程序运行在同一台机器上,我不喜欢轮询文件系统更改的整个概念,因为它很容易出错(权限等) 。) –
在这种情况下,使用'SaveSetting()'在PPT-VBA端将信息推入注册表,'= GetSetting()'从其他应用程序中检索它们 – MikeD
http://damianblog.com/2009/07/05/excel-wcf/ –
是很困难的建议不知道你想要什么样的解决方案做什么(什么消息?,多久?),基于什么事件/数据/时间?)。如果你写了App,那么SendKeys可能不是前进的方向。 – user3357963
我有一个背景.net应用程序,我试图让它知道当前的powerpoint状态。换句话说 - 幻灯片播放是否开启,幻灯片显示 –