2 sinat 14903989 sinat_14903989 于 2015.07.09 16:54 提问

C++或MFC响应PPT的操作
c++
利用MFC或者C++写一个功能或者函数,当PPT点击播放按钮时,执行这段程序,

求一个解决方案;如果这个方法不容易,反过来,利用MFC控制PPT播放也可以。

5个回答

zuishikonghuan
zuishikonghuan   2015.07.09 19:54
已采纳

或者就直接模拟鼠标或键盘,或者用sendmessage

zuishikonghuan
zuishikonghuan 回复zuishikonghuan: 好处是即使标题和类名一样也不会有影响
2 年多之前 回复
zuishikonghuan
zuishikonghuan 回复转意符号: 有个思路,先注入dll,然后用GetWindowLong(Ptr)获取窗口控件的id,然后要控制时注入dll后用GetDlgItem获取句柄,但这样就比较麻烦了。m
2 年多之前 回复
sinat_14903989
sinat_14903989 找到窗口,然后发送快捷键的消息,我用的这个方法实现,倒是挺省事;主要是需要的那几个窗口标题和类名都一样,找起来太麻烦了。程序控制PPT这样就好了,程序响应PPT这个暂时放弃了。
2 年多之前 回复
zuishikonghuan
zuishikonghuan 回复转意符号: 我这里没有office(太占空间不敢装),一般来说,spy++能找到所有窗口名称和类名,如果office是64位的最好用64位的spy++
2 年多之前 回复
sinat_14903989
sinat_14903989 这个方法确实解决了部分问题,谢谢
2 年多之前 回复
sinat_14903989
sinat_14903989 有没有办法找到ppt中播放按钮的名字或句柄,我只是找到了窗口名
2 年多之前 回复
sinat_14903989
sinat_14903989 好的,我试试
2 年多之前 回复
zuishikonghuan
zuishikonghuan 回复转意符号: 先用spy++找到要操作的窗口的标题和类名,用findwindow和findwindowex动态查找句柄,用sendmessage发送鼠标按下和鼠标弹起消息
2 年多之前 回复
sinat_14903989
sinat_14903989 具体怎么做有什么建议吗
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.09 17:04
sinat_14903989
sinat_14903989 好的,我先学习下吧
2 年多之前 回复
caozhy
caozhy 回复sinat_14903989: 可以,但是你要非常熟悉com对象底层的细节,一般用atl写,ppt的例子比较少。word excel的例子你可以看看。
2 年多之前 回复
sinat_14903989
sinat_14903989 回复sinat_14903989: 英语不太好,看的比较费劲,不知道那个文章的东西能用到mfc上吗
2 年多之前 回复
caozhy
caozhy 回复sinat_14903989: 你不是要拦截ppt的操作么
2 年多之前 回复
sinat_14903989
sinat_14903989 第三篇文章确实挺合适,不过用到了c#,还有有没有方法作为一个独立的程序来响应ppt,而不是安装到ppt上?谢谢
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.09 17:59

你还有一个思路就是ole嵌入ppt,然后用vba去控制ppt播放,相当于自己写播放器。

sinat_14903989
sinat_14903989 谢谢,C#不太了解...
2 年多之前 回复
caozhy
caozhy 回复sinat_14903989: 建议你用C#
2 年多之前 回复
sinat_14903989
sinat_14903989 太复杂不会啊,理想的情况就是一个Mfc应用程序,等待PPT播放,然后执行某个功能,只是还不知道能不能实现
2 年多之前 回复
91program
91program   Ds   Rxr 2015.07.09 18:45

简单的就是写一个模拟鼠标点击的程序

sinat_14903989
sinat_14903989 好的,谢谢
2 年多之前 回复
91program
91program 回复转意符号: 获取 PPT 播放状态可能不行,除非你自己完成 PPT 播放器;模拟鼠标点击的功能,网上很多,查找一下吧。
2 年多之前 回复
sinat_14903989
sinat_14903989 我本来想法是获取ppt播放的消息,只是不知道能不能行;怎么模拟才能到达这个效果,模拟程序该怎么入手?谢谢
2 年多之前 回复
zuishikonghuan
zuishikonghuan   2015.07.09 19:53

微软应该有提供Microsoft office的接口吧,去MSDN找找

Csdn user default icon
上传中...
上传图片
插入图片