--- 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