--- El lun 25-ago-08, Marian Popa <[EMAIL PROTECTED]> escribió:

Please keep posting on the list.

Have you tried what other people already suggested?

- I need to access a bat file which opens an application
that doesn't have COM interface in order to control it
from Python; so I just need to access that bat file and
inside it there are several commands for this application
- the bat file is correct because if I manually open it
(double click), it is working fine
- the problem is that when I run the script, the bat
file is opened somehow (I can see the command prompt), but
the application is not opened unless the script is finished
- please see the 3 attached files (script, bat file and a
test Word document): the doc is opened only after the cript
execution finishes
- in my test, the next lines after the call of the batch
file are dependent on the succesfull open of that
application; otherwise, the whole script crashes
- what is interesting is that if I put a breakpoint on the
line in which I access the batch file, and I step on it
manually, the application launches correctly and then
the script is working fine, but this is not an automated
solution

Start the application in a separate console (using `start "" bat_file` might be the easiest way) and then, within your Python script, wait until the new process is ready. The wmi module by Tim Golden can help <http://tgolden.sc.sabren.com/python/wmi.html>
e.g. wait until Microsoft Word opens:

import wmi
c = wmi.WMI()
while not len(c.Win32_Process(name="winword.exe")):
    sleep(500)

P.S. The application that I need to open must run in the
background during the execution of the rest of the script.
At the end, I need to close it. Is it possible to do this
with a script command?

Do you *have* to start it using a batch file? If you start the application within Python --using subprocess.Popen by example-- you can obtain its pid, and later kill it (with os.kill)

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to