python - win32com -> powerpoint.application: 跳过密码弹出对话框
python - win32com -> powerpoint.application: skip password pop up dialogue
我有很多powerpoint文件需要打开。有些文件需要密码,我需要跳过弹出对话框。如何跳过这个对话,跳到下一个路径?
示例:
我是用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,但对话框仍然弹出。
已解决,
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()
...
我有很多powerpoint文件需要打开。有些文件需要密码,我需要跳过弹出对话框。如何跳过这个对话,跳到下一个路径?
示例:
我是用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,但对话框仍然弹出。
已解决,
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()
...