[Python-de] win32

Gerhard Häring haering_python at gmx.de
Mon Aug 6 17:15:57 EDT 2001


On Mon, Aug 06, 2001 at 04:55:04PM +0200, Frederik Fuest wrote:
> Hallo!!
> Ich bin gerade neu im Python Programmieren und habe ein Problem mit
> einer win32 Programmierung.
> und zwar würde ich gerne sämtliche ProzessIDs unter WindowsNT auslesen.
> 
> Kann mir jemand weiterhelfen?

Das ist relative heavy Windows-API-Stuff ... Als erstes brauchst du die
win32-Extensions für Python. Ist bei der Distribution von ActiveState dabei,
kann man bei denen aber auch getrennt runterladen. Ich hab bei mir was
rumliegen, was was Ähnliches macht (ist nicht von mir): es terminiert einen
Prozess, wenn man dessen Namen kennt. Siehe Attachment.

HTH,

Gerhard
-- 
mail:   gerhard <at> bigfoot <dot> de       registered Linux user #64239
web:    http://highqualdev.com              public key at homepage
public key fingerprint: DEC1 1D02 5743 1159 CD20  A4B6 7B22 6575 86AB 43C0
reduce(lambda x,y: x+y, [chr(ord(x)^42) for x in list('zS^BED\nX_FOY\x0b')])
-------------- next part --------------
import in32api, win32pdhutil, win32con, _winreg

def killProcName(procname):
	# Change suggested by Dan Knierim, who found that this performed a
	# "refresh", allowing us to kill processes created since this was run
	# for the first time.
	try:
		win32pdhutil.GetPerformanceAttributes('Process','ID Process',procname)
	except:
		pass

	pids = win32pdhutil.FindPerformanceAttributesByName(procname)

	# If _my_ pid in there, remove it!
	try:
		pids.remove(win32api.GetCurrentProcessId())
	except ValueError:
		pass

	if len(pids)==0:
		result = "Can't find %s" % procname
	elif len(pids)>1:
		result = "Found too many %s's - pids=`%s`" % (procname,pids)
	else:
		handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0,pids[0])
		win32api.TerminateProcess(handle,0)
		win32api.CloseHandle(handle)
		result = ""

	return result


More information about the Python-de mailing list