About wmi

patrol sunp1028 at gmail.com
Sun Jul 13 14:16:46 CEST 2008

I want to prevent some process from running. The code is in the
following. I  encounter some unexpected troubles.
Probelm1: This program cannot terminate "scrcons.exe" and
"FNPLicensingService.exe",which are system processes.
Problem2:After a while, this program will abort by error
  File "C:\Python25\lib\wmi.py", line 397, in __call__
handle_com_error (error_info)
  File "C:\Python25\lib\wmi.py", line 190, in handle_com_error raise
x_wmi, "\n".join (exception_string)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
14: ordinal not in range(128)

# -*- coding:utf-8 -*-
import pythoncom
import wmi
import threading
import time
from xml.dom.minidom import parse, parseString

class Info (threading.Thread):
	def __init__ (self):
		threading.Thread.__init__ (self)
	def run (self):
		print 'In Another Thread...'
		pythoncom.CoInitialize ()
		dom1 = parse('processTerminateList.xml')
		config_element = dom1.getElementsByTagName("processTerminateList")
		servers = config_element.getElementsByTagName("processName")
			c = wmi.WMI ()
			for process in c.Win32_Process ():
				for server in servers:
					if process.name == getText(server.childNodes):
						print process.name
			process_watcher = c.Win32_Process.watch_for("creation")
			while True:
				new_process = process_watcher()
				name =  new_process.Caption
				print name
				for server in servers:
					if name == getText(server.childNodes):
			pythoncom.CoUninitialize ()
def getText(nodelist):
	rc = ""
	for node in nodelist:
		if node.nodeType == node.TEXT_NODE:
			rc = rc + node.data
	return rc

if __name__ == '__main__':
<?xml version="1.0" encoding="utf-8"?>

More information about the Python-list mailing list