About wmi
Larry Bates
larry.bates at websafe.com`
Sun Jul 13 10:26:02 EDT 2008
patrol wrote:
> 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)
>
>
> ----------------------------------------------------
> code----------------------------------------------------------------------------------
> # -*- 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")
> [0]
> servers = config_element.getElementsByTagName("processName")
> try:
> c = wmi.WMI ()
> for process in c.Win32_Process ():
> for server in servers:
> if process.name == getText(server.childNodes):
> process.Terminate()
> 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):
> new_process.Terminate()
> finally:
> 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__':
> Info().start()
> ------------------------------------------------------
> processTerminateList.xml-----------------------------------------------------------------------
> <?xml version="1.0" encoding="utf-8"?>
> <processTerminateList>
> <processName>scrcons.exe</processName>
> <processName>TXPlatform.exe</processName>
> <processName>mdm.exe</processName>
> <processName>FNPLicensingService.exe</processName>
> <processName>notepad.exe</processName>
> <processName>uedit32.exe</processName>
> </processTerminateList>
You should probably post this to comp.python.windows. Tim Golden (author of WMI
interface) monitors that list religously (thanks Tim).
-Larry
More information about the Python-list
mailing list