On 7月14日, 下午12时29分, Larry Bates <[EMAIL PROTECTED]> wrote: > patrol wrote: > > On 7月13日, 下午10时26分, Larry Bates <[EMAIL PROTECTED]> wrote: > >> 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- 隐藏被引用文字 - > > >> - 显示引用的文字 - > > > I cannot find comp.python.windows.What's the URL? > > http://news.gmane.org/gmane.comp.python.windows/cutoff=7565 > > -Larry- 隐藏被引用文字 - > > - 显示引用的文字 -
Thanks -- http://mail.python.org/mailman/listinfo/python-list