<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Ciao a tutti, ho un problema che non so come superare.<br>
Ho scritto il programmino banale:<br>
<br>
<small><i>import os<br>
import subprocess<br>
from aconfig import *<br>
Config = aconfig("conf/conf.cf") #leggo la configurazione
esterna con una classe mia<br>
file = Config.filetolaunch #consideriamolo ad
esempio file="c:/prog.exe"<br>
checkDoubleRun = Config.checkDoubleRun #consideriamolo
True<br>
processisactive=False<br>
if checkDoubleRun:<br>
in_file = open("pid.pid","r")<br>
FilePid = in_file.read()<br>
in_file.close()<br>
p = subprocess.Popen("pslist "+FilePid.replace("\n",""),
stdout=subprocess.PIPE, stderr=subprocess.PIPE)<br>
out, err = p.communicate()<br>
if "was not found" not in out:<br>
processisactive=True<br>
if not processisactive:<br>
process=subprocess.Popen(r'"'+file+'"', shell=True)<br>
pid=process.pid<br>
out_file = open("pid.pid","w")<br>
out_file.write(str(pid))<br>
out_file.close()</i></small><br>
<br>
In pratica il programmetto in questione non fa altro che lanciare
un'altra app e segnarsi il PID che viene scritto in un file
temporaneo pid.pid<br>
se quando priprovo a lanciare l'applicazione vedo che il PID è
attivo (usando pslist) il programma non lo lancia di nuovo, questo
per non avviare due volte la stessa applicazione.<br>
Funziona. Se però lo compilo con py2exe come window, ricevo un
errore sull'handle riportato nel file di log:<br>
<br>
<small><i>Traceback (most recent call last):<br>
File "launcher.py", line 15, in <module><br>
File "subprocess.pyc", line 588, in __init__<br>
File "subprocess.pyc", line 707, in _get_handles<br>
File "subprocess.pyc", line 752, in _make_inheritable<br>
WindowsError: [Error 6] Handle non valido</i></small><br>
<br>
cosa può essere secondo voi?<br>
grazie<br>
Vittorio<br>
</body>
</html>