将击键发送到 PowerPoint 窗口

问题描述

我正在尝试将按键发送到 Python 中的 PowerPoint 幻灯片,以便自动推进幻灯片。我想发送 VK_RIGHTVK_LEFT 消息。

我正在使用 win32gui.FindWindow 通过标题查找 Powerpoint 窗口,然后尝试使用以下命令向窗口句柄发送消息:

win32api.SendMessage(windowhandle,win32con.WM_KEYDOWN,win32con.VK_RIGHT,0))

虽然这适用于记事本等其他应用程序,但它似乎不适用于主窗口。对于记事本,它实际上在其子窗口上工作,所以我尝试使用 Powerpoint 子窗口:

win32gui.EnumChildWindows

我循环它们向每个子窗口发送相同的消息,但它似乎也不起作用。

LRESULTwin32api.SendMessage 始终为 0(使用记事本为 1)。

知道为什么会这样吗?

解决方法

另一种(可能更好)的解决方案是使用 COM32,它恰好包含在 win32api 中。

您可以使用 this library for office 作为参考。

打开幻灯片并查看下一张幻灯片的示例:

app = win32com.client.Dispatch("PowerPoint.Application")
objCOM = app.Presentations.Open(FileName="path_to_file",WithWindow=1)
objCOM.SlideShowWindow.View.Next()

来源:https://medium.com/@chasekidder/controlling-powerpoint-w-python-52f6f6bf3f2d

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...