Examples for automating Windows applications via the Microsoft
Component Object Model (COM), Win32API, PythonCOM and other interesting
Python modules. Mainly developed with the Python Windows Extensions from Marc Hammond. If you want to post a script, article or news please use this link Post a Python script. Hint: For sytax highlighting place your code between the tags <pre> and </pre>
This section as RSS feed.
|
|
Microsoft Office
|
|
One more example how to automate Microsoft Powerpoint and printout a
postscript file with a specified postscript printer (yes, more than one
printers can be installed on the system).
Multithreadding:
Unlike Word and Excel Powerpoint can not run in multiple instances.
If you want to use Powerpoint server based you must implement code to
handle the Powerpoint processes.
How to call the function:
You simply call the function with the name of the Word file, Postscript file and the printername which you want to use.:
e.g.:
make_ps.powerpoint('c:\test\powerpointfilename.ppt', 'c:\test\psfilename.ps', 'My Postscript Printername')
The source code:
def powerpoint(powerpointfile, psfile, printer):
pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)
myPowerpoint = win32com.client.DispatchEx('Powerpoint.Application')
myPpt = myPowerpoint.Presentations.Open(powerpointfile, False, False, False)
myPpt.PrintOptions.PrintInBackground = 0
myPpt.PrintOptions.ActivePrinter = printer
myPpt.Saved = 1
myPpt.PrintOut(1, 5000, psfile, 0, False)
myPpt.Close()
#myPowerpoint.Quit()
del myPpt
#del myPowerpoint
pythoncom.CoUninitialize()
|
|
|
Microsoft Office
|
|
One more example how to automate Microsoft Excel and printout a
postscript file with a specified postscript printer (yes more than one
printer can be installed on the system).
But unlike Word you can not check the background printing status in
Excel with the method "BackgroundPrintingStatus". This shouldn`t make
problems. I didn`t found an afvantage of this feature.
Multi-Threadding:
Unlike Powerpoint Excel works in more than one instances.
How to call the function:
You simply call the function with the name of the Word file, Postscript file and the printername which you want to use.:
The source code:
def excel(excelfile, psfile, printer):
pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)
myExcel = win32com.client.DispatchEx('Excel.Application')
myExcel.Application.AskToUpdateLinks = 0
Excel = myExcel.Workbooks.Open(excelfile, 0, False, 2)
Excel.Saved = 1
Excel.PrintOut(1, 5000, 1, False, printer, True, False, psfile)
Excel.Close()
myExcel.Quit()
del myExcel
del Excel
pythoncom.CoUninitialize()
excel('c:/test/excelfilename.xls', 'c:/test/psfilename.ps', 'My Postscript Printername')
|
|
|
Microsoft Office
|
|
One small example how to automate Microsoft Word and printout a
postscript file with a specified postscript printer (yes, more than one
printers can be installed on the system).
Multithreadding:
Unlike
Powerpoint Microsoft Word can run in multiple instances - If a program
creates more Word processes you will see them in the task manager.
How to call the function:
You simply call the function with the name of the Word file, Postscript file and the printername which you want to use.:
eg.
make_ps.word('c:\test\wordfilename.doc', 'c:\test\psfilename.ps', 'My Postscript Printername')
The source code:
import win32com.client, pythoncom, time
def word(wordfile, psfile, printer):
pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)
myWord = win32com.client.DispatchEx('Word.Application')
myWord.Application.ActivePrinter = printer
myDoc = myWord.Documents.Open(wordfile, False, False, False)
myDoc.Saved=1
myWord.Application.NormalTemplate.Saved = 1
myWord.PrintOut(True, False, 0, psfile)
while myWord.BackgroundPrintingStatus > 0:
time.sleep(0.1)
myDoc.Close()
myWord.Quit()
del myDoc
del myWord
pythoncom.CoUninitialize()
|
|
|
Internet Explorer
|
|
This script is from Aaron Bradly and was published on his Blog. It converts all Favorites from Microsoft Internet Explorer XHTML-valid to Bookmarks.html. I changed it a bid, because no pipe exists on Windows.
#!/usr/bin/python
import os
import os.path
import sys
# the favorites folder of Windows
dir = u'C:\Dokumente und Einstellungen\your_userid\Favoriten'
files = os.listdir(dir)
bookmarks = open('bookmarks.html', 'w')
head = "Bookmarks"
#print header
bookmarks.write(head)
for file in files:
if not file[-4:] == '.url':
continue
title = file[:-4]
fn = os.path.join(dir, file)
body = open(fn).readlines()
for line in body:
token = 'BASEURL='
if line[:len(token)] == token:
url = line[len(token):].strip()
url = url.replace("&", "&")
url = url.replace("<", "<")
url = url.replace(">", ">")
title = title.replace("&", "&")
title = title.replace("<", "<")
title = title.replace(">", ">")
main= (u'%s
' % (url, title)).encode('u8', 'ignore')
bookmarks.write(main)
bookmarks.close()
|
|
|
Microsoft Windows
|
|
This script prints the file in the first argument with the windows default application.
Example:
If you save the code in the file print.py:
print.py test.doc -> Opens Microsoft Word (if it is installed) and prints the file test.py to the default printer.
print.py mytextfile.txt -> Same. But prints with Notepad
from win32api import ShellExecute
from sys import argv
ShellExecute(0, "print", argv[1], None, "", 1)
|
|
|
<< Start < Prev 11 12 13 14 15 16 17 18 19 Next > End >>
|
| Results 81 - 85 of 95 |