Dispatch('Excel.Application') on Vista from Task Scheduler

C

Cupric

I have a python script that runs fine from the command line or from
within IDLE, but doesn't work through the Vista Task Scheduler.

The script downloads some csv files and then uses pywin32 to combine
the csv files into a single document. When I run it through the task
scheduler, it downloads the csv files, but then doesn't seem to launch
excel. I can't figure out what is wrong or how to add enough logging
to tell.

I'm using Python 2.6 and pywin32-212.win32-py2.6 on Vista.

Code snippet below.

Any ideas? Does it have something to do with permissioning on Vista?
I'm running the task as my regular user (that has administrative
privileges).

Thanks,
Theo
---------------
from win32com.client import Dispatch
.....
excel = Dispatch('Excel.Application')
excel.visible =0
print 'launched excel'
workbook =excel.Workbooks.Add()
Sheets = workbook.sheets
defaultWorksheets = workbook.Worksheets(1)
excel.application.displayalerts = 0

for port in portList:
print 'about to open' + basePath + port.filename
port_book = excel.Workbooks.Open( basePath +
port.filename)
port_sheets = port_book.Sheets

datasheet = port_sheets(1)

datasheet.Activate()
datasheet.Cells.Select()

excel.Selection.Copy()

Sheets.Add().Name = port.name
newsheet=workbook.Worksheets(port.name)
newsheet.Activate()
newsheet.Paste()

port_book.Close(SaveChanges=0)
 
L

Larry Bates

Cupric said:
I have a python script that runs fine from the command line or from
within IDLE, but doesn't work through the Vista Task Scheduler.

The script downloads some csv files and then uses pywin32 to combine
the csv files into a single document. When I run it through the task
scheduler, it downloads the csv files, but then doesn't seem to launch
excel. I can't figure out what is wrong or how to add enough logging
to tell.

I'm using Python 2.6 and pywin32-212.win32-py2.6 on Vista.

Code snippet below.

Any ideas? Does it have something to do with permissioning on Vista?
I'm running the task as my regular user (that has administrative
privileges).

Thanks,
Theo
---------------
from win32com.client import Dispatch
....
excel = Dispatch('Excel.Application')
excel.visible =0
print 'launched excel'
workbook =excel.Workbooks.Add()
Sheets = workbook.sheets
defaultWorksheets = workbook.Worksheets(1)
excel.application.displayalerts = 0

for port in portList:
print 'about to open' + basePath + port.filename
port_book = excel.Workbooks.Open( basePath +
port.filename)
port_sheets = port_book.Sheets

datasheet = port_sheets(1)

datasheet.Activate()
datasheet.Cells.Select()

excel.Selection.Copy()

Sheets.Add().Name = port.name
newsheet=workbook.Worksheets(port.name)
newsheet.Activate()
newsheet.Paste()

port_book.Close(SaveChanges=0)
Normally this has more to do with the context that the app runs in under Task
Scheduler not having the same environment as the logged in user. Try telling
the Task Scheduler to run the application using the same credentials as the
foreground user to see if that makes a difference.

-Larry
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top