PDA

View Full Version : [Python]


GidanTKA
27-07-2008, 19:07
Ciao a tutti, io avrei un problema, ho scritto questo codice:


import win32api, win32pdhutil, win32con

def termina(exe):
pids = win32pdhutil.FindPerformanceAttributesByName(exe)

for p in pids:
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p) #get process handle
win32api.TerminateProcess(handle,0)
win32api.CloseHandle(handle)


termina("iexplore")


ma vorrei che si ripeta esattamente ogni secondo, in modo tale che ogni secondo controlli se c'è un determinato processo attivo e lo chiuda.

Qualcuno di voi saprebbe dirmi come posso fare?

cdimauro
27-07-2008, 20:04
import win32api, win32pdhutil, win32con, time

def termina(exe):
pids = win32pdhutil.FindPerformanceAttributesByName(exe)

for p in pids:
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p) #get process handle
win32api.TerminateProcess(handle,0)
win32api.CloseHandle(handle)

while True:
termina("iexplore")
time.sleep(1)

GidanTKA
27-07-2008, 20:21
import win32api, win32pdhutil, win32con, time

def termina(exe):
pids = win32pdhutil.FindPerformanceAttributesByName(exe)

for p in pids:
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p) #get process handle
win32api.TerminateProcess(handle,0)
win32api.CloseHandle(handle)

while True:
termina("iexplore")
time.sleep(1)



Ecco! Ti ringrazio molto!!!

GidanTKA
27-07-2008, 20:23
import win32api, win32pdhutil, win32con, time

def termina(exe):
pids = win32pdhutil.FindPerformanceAttributesByName(exe)

for p in pids:
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p) #get process handle
win32api.TerminateProcess(handle,0)
win32api.CloseHandle(handle)

while True:
termina("iexplore")
time.sleep(1)


Ok, ma non funziona!

l'errore è questo:
Traceback (most recent call last):
File "I:\documenti\informatica\python\progetti python\termina processi.py", line 12, in ?
termina("iexplore")
File "I:\documenti\informatica\python\progetti python\termina processi.py", line 4, in termina
pids = win32pdhutil.FindPerformanceAttributesByName(exe)
File "C:\Python24\Lib\site-packages\win32\lib\win32pdhutil.py", line 97, in FindPerformanceAttributesByName
machine))
File "C:\Python24\Lib\site-packages\win32\lib\win32pdhutil.py", line 60, in GetPerformanceAttributes
win32pdh.CollectQueryData(hq)
error: (-2147481643, 'CollectQueryData', 'Nessun dato da restituire.')

cdimauro
27-07-2008, 21:31
L'errore è nella FindPerformanceAttributesByName, ma non ho mai lavorato con le win32, per cui non ti so dire.

GidanTKA
27-07-2008, 21:44
L'errore è nella FindPerformanceAttributesByName, ma non ho mai lavorato con le win32, per cui non ti so dire.

ok, grazie lostesso

GidanTKA
28-07-2008, 11:58
Ecco, son riuscito a risolvere il problema
il codice giusto è:


import win32api, win32pdhutil, win32con, time

def termina(exe):
pids = win32pdhutil.FindPerformanceAttributesByName(exe)

for p in pids:
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p) #get process handle
win32api.TerminateProcess(handle,0)
win32api.CloseHandle(handle)

while True:
try:
termina("iexplore")
time.sleep(1)
except:
None


Saluti GidanTKA

variabilepippo
28-07-2008, 13:02
Ma intendi intitolare [Python] ogni nuovo thread sul forum? :confused: Dopo il linguaggio indicato tra parentesi quadre dovresti riassumere con 3/4 parole il contenuto della discussione che stai aprendo.