python-win32com-> powerpoint.application:跳过密码弹出对话框

时间:2018-08-07 16:15:35

标签: vba python-3.x powerpoint-vba win32com powerpoint-2010

我有很多PowerPoint文件需要打开。有些文件需要密码,我需要跳过弹出对话框。如何跳过此对话框,然后跳到下一个路径?

示例:

Example

我正在使用win32com方法来使用powerpoint.application。

这是我的代码:

filename = 'test.pptx'
PPTApplication = win32com.client.Dispatch("PowerPoint.Application")
PPTApplication.DisplayAlerts = False
PPTApplication.Presentations.Open(filename,ReadOnly=True,WithWindow=False)

这是我检查过的功能: https://msdn.microsoft.com/en-us/vba/powerpoint-vba/articles/presentations-open-method-powerpoint

DisplayAlert设置为False,ReadOnly设置为True,但是对话框仍然弹出。

1 个答案:

答案 0 :(得分:1)

已解决,

import win32gui
import win32con
import win32com
import threading

flag = False
def terminate():
    global flag
    while (1):
        hwnd = win32gui.FindWindow(None, 'Password')
        if hwnd != 0:
            win32gui.PostMessage(hwnd,win32con.WM_CLOSE,0,0)
            break
        if flag == True:
            break

...
t = threading.Thread(target=terminate)
t.start()
try:
    PPTApplication = win32com.client.Dispatch("PowerPoint.Application")
    PPTApplication.Presentations.Open(filename,ReadOnly=True,WithWindow=False)
except:
    t.join()
    None

if t.is_alive():
    flag = True
    t.join()
...