Help with win32com problem
- c o v e n t r y -
coventry at removethisandallhyphens-o-n-e.net
Wed Aug 14 00:58:17 EDT 2002
Hello,
I'm doing COM automation to force MS Powerpoint to show a variety of
presentations. When run, my script walks-through all the .ppt files
located in a specific directory. The problem I'm running into is that
if I set my script to loop indefinetly, it does not block on the COM
automation calls to powerpoint to run a presentation. I've tried
modifying the clsctx used when I start Powerpoint with a document, but
can't seem to get the python process to block on the .Run() call...
here is the relevant section of the script. When run in its current
form, it causes the machine to flip-between all available presentations
so fast it creates a strobe effect on-screen (at least on my machine).
If I don't use the while 1: loop, the code runs fine, but of course, it
doesn't loop. Any sugestions?
import glob, win32com.client, pythoncom
## loop forever!
while 1:
## reload ppt files each time we start presenting.
pptFiles = glob.glob('c:\*.ppt')
## now show each ppt file. each file must have
## slide transitions set to auto-advance after a period fo time.
### otherwise, this will lock up!
for pptFile in pptFiles:
## regardless of which clsctx I use, I get the same result on the
## next line...
PPT =
win32com.client.GetObject(pptFile,clsctx=pythoncom.CLSCTX_LOCAL_SERVER)
## the following line does not block.
## this can cause a major problem. the 's =' is not needed,
## but I wanted to see if an assignment would delay action...
## it didn't.
s = PPT.SlideShowSettings.Run()
## attempting to do a .Close() or a .Exit() does nothing meaningful
## since the script continues to run...
=======================
Please help, any ideas would be appreciated!
More information about the Python-list
mailing list