Re: About wmi

2008-07-18 Thread patrol
On 7月17日, 下午4时22分, Tim Golden [EMAIL PROTECTED] wrote:
 patrol wrote:
  I will try to modify the wmi.py ,however I'm a novice.It will take a
  long time. You can give it up temporarily. If you don't mind ,can you
  tell me where needs modifying and how? Just unicode? Or Other?

 OK. Thanks for your patience on this one, Patrol. What I propose
 to do is to dig into the pywin32 sources to determine what's going
 on when the error messages are fetched. Then I'll be better placed
 to decide what to do when they come out. On the surface, the current
 module should be handling things correctly; but I've obviously missed
 an encode/decode somewhere.

 If I can think of an (even hackish) workaround for you in the meantime,
 I'll let you know. Until then...

 TJG

Thanks for Tim's help.

Patrol
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-17 Thread Tim Golden

patrol wrote:

I will try to modify the wmi.py ,however I'm a novice.It will take a
long time. You can give it up temporarily. If you don't mind ,can you
tell me where needs modifying and how? Just unicode? Or Other?


OK. Thanks for your patience on this one, Patrol. What I propose
to do is to dig into the pywin32 sources to determine what's going
on when the error messages are fetched. Then I'll be better placed
to decide what to do when they come out. On the surface, the current
module should be handling things correctly; but I've obviously missed
an encode/decode somewhere.

If I can think of an (even hackish) workaround for you in the meantime,
I'll let you know. Until then...

TJG

--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-16 Thread Tim Golden

patrol wrote:

http://timgolden.me.uk/wmi-project/wmi.py


It cannot work either.


Oh well. It was only a quick fix! I'll try
to get some kind of non-ASCII edition of Windows
to test against. As I understand it, the situation
is that some WMI exception (ie coming from the
underlying WMI/COM subsystem) results in an error
message which contains non-ASCII characters.

Just so I'm not chasing red herrings, could you
paste the output from the following code, please?

code
import wmi # use the version linked above

c = wmi.WMI (non-existent computer)

#
# Should give a traceback here for the DCOM
# error, not a UnicodeDecodeError.
#
/code

Thanks

TJG
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-16 Thread patrol
On 7月16日, 下午3时29分, Tim Golden [EMAIL PROTECTED] wrote:
 patrol wrote:
 http://timgolden.me.uk/wmi-project/wmi.py

  It cannot work either.

 Oh well. It was only a quick fix! I'll try
 to get some kind of non-ASCII edition of Windows
 to test against. As I understand it, the situation
 is that some WMI exception (ie coming from the
 underlying WMI/COM subsystem) results in an error
 message which contains non-ASCII characters.

 Just so I'm not chasing red herrings, could you
 paste the output from the following code, please?

 code
 import wmi # use the version linked above

 c = wmi.WMI (non-existent computer)

 #
 # Should give a traceback here for the DCOM
 # error, not a UnicodeDecodeError.
 #
 /code

 Thanks

 TJG
The errors are in the following:

Traceback (most recent call last):
  File D:\My Documents\code\python\wmi\test.py, line 5, in module
c = wmi.WMI (non-existent computer)
  File C:\Python25\lib\wmi.py, line 1199, in connect
handle_com_error (error_info)
  File C:\Python25\lib\wmi.py, line 184, in handle_com_error
exception_string = [u%s - %s % (hex (hresult_code),
hresult_name)]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
4: ordinal not in range(128)

Patrol
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-16 Thread Tim Golden
patrol wrote:
 The errors are in the following:
 
 Traceback (most recent call last):
   File D:\My Documents\code\python\wmi\test.py, line 5, in module
 c = wmi.WMI (non-existent computer)
   File C:\Python25\lib\wmi.py, line 1199, in connect
 handle_com_error (error_info)
   File C:\Python25\lib\wmi.py, line 184, in handle_com_error
 exception_string = [u%s - %s % (hex (hresult_code),
 hresult_name)]
 UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
 4: ordinal not in range(128)

OK, I'm trying to set up a Virtual PC so I can install
a non-English XP. But would you mind running the
following code for me, please, so I can get a handle
on what's coming back:

code
import pythoncom
import win32com.client

try:
  win32com.client.GetObject (winmgmts://blahblah)
except pythoncom.com_error, info:
  for i in info:
print repr (i)

/code

Thanks
TJG
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-16 Thread patrol
On 7月16日, 下午10时39分, Tim Golden [EMAIL PROTECTED] wrote:
 patrol wrote:
  The errors are in the following:

  Traceback (most recent call last):
File D:\My Documents\code\python\wmi\test.py, line 5, in module
  c = wmi.WMI (non-existent computer)
File C:\Python25\lib\wmi.py, line 1199, in connect
  handle_com_error (error_info)
File C:\Python25\lib\wmi.py, line 184, in handle_com_error
  exception_string = [u%s - %s % (hex (hresult_code),
  hresult_name)]
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
  4: ordinal not in range(128)

 OK, I'm trying to set up a Virtual PC so I can install
 a non-English XP. But would you mind running the
 following code for me, please, so I can get a handle
 on what's coming back:

 code
 import pythoncom
 import win32com.client

 try:
   win32com.client.GetObject (winmgmts://blahblah)
 except pythoncom.com_error, info:
   for i in info:
 print repr (i)

 /code

 Thanks
 TJG

-2147023174
'RPC \xb7\xfe\xce\xf1\xc6\xf7\xb2\xbb\xbf\xc9\xd3\xc3\xa1\xa3'
None
None

--
import pythoncom
import win32com.client


try:
  win32com.client.GetObject (winmgmts://blahblah)
except pythoncom.com_error, info:
  for i in info:
print i

-2147023174
RPC 服务器不可用。
None
None
-
 a=RPC 服务器不可用。
 a
'RPC \xb7\xfe\xce\xf1\xc6\xf7\xb2\xbb\xbf\xc9\xd3\xc3\xa1\xa3'

-
Patrol
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-16 Thread Tim Golden
patrol wrote:
 -2147023174
 'RPC \xb7\xfe\xce\xf1\xc6\xf7\xb2\xbb\xbf\xc9\xd3\xc3\xa1\xa3'
 None
 None
 
 --
 import pythoncom
 import win32com.client
 
 
 try:
   win32com.client.GetObject (winmgmts://blahblah)
 except pythoncom.com_error, info:
   for i in info:
 print i
 
 -2147023174
 RPC 服务器不可用。
 None
 None
 -
 a=RPC 服务器不可用。
 a
 'RPC \xb7\xfe\xce\xf1\xc6\xf7\xb2\xbb\xbf\xc9\xd3\xc3\xa1\xa3'
 -
 Patrol

Brilliant. Thanks, Patrol. So the error message comes back
encoded. Can you confirm what your console encoding is,
please? The following script should confirm:

code
import os, sys

print sys.stdout.encoding
os.system (chcp)

/code

TJG
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-16 Thread Tim Golden
Assuming that the error comes back in the sys.stdout encoding, the following 
version *should* work ok. I still haven't got a non-English set up to test it 
on, but it certainly does return a Unicode error message.

http://timgolden.me.uk/wmi-project/wmi.py

The usual test case, if you wouldn't mind:

code
import wmi

wmi.WMI (non-existent computer)

/code

should give a (language-specific) error message, not an UnicodeDecodeError

TJG
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-16 Thread patrol
On 7月16日, 下午11时59分, Tim Golden [EMAIL PROTECTED] wrote:
 patrol wrote:
  -2147023174
  'RPC \xb7\xfe\xce\xf1\xc6\xf7\xb2\xbb\xbf\xc9\xd3\xc3\xa1\xa3'
  None
  None

  --
  import pythoncom
  import win32com.client

  try:
win32com.client.GetObject (winmgmts://blahblah)
  except pythoncom.com_error, info:
for i in info:
  print i

  -2147023174
  RPC 服务器不可用。
  None
  None
  -
  a=RPC 服务器不可用。
  a
  'RPC \xb7\xfe\xce\xf1\xc6\xf7\xb2\xbb\xbf\xc9\xd3\xc3\xa1\xa3'
  -
  Patrol

 Brilliant. Thanks, Patrol. So the error message comes back
 encoded. Can you confirm what your console encoding is,
 please? The following script should confirm:

 code
 import os, sys

 print sys.stdout.encoding
 os.system (chcp)

 /code

 TJG- 隐藏被引用文字 -

 - 显示引用的文字 -

 import os,sys
 print sys.stdout.encoding
cp936
 os.system(chcp)
活动的代码页: 936
0
 sys.getdefaultencoding()
'ascii'
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-16 Thread patrol
On 7月17日, 上午12时16分, Tim Golden [EMAIL PROTECTED] wrote:
 Assuming that the error comes back in the sys.stdout encoding, the following 
 version *should* work ok. I still haven't got a non-English set up to test it 
 on, but it certainly does return a Unicode error message.

 http://timgolden.me.uk/wmi-project/wmi.py

 The usual test case, if you wouldn't mind:

 code
 import wmi

 wmi.WMI (non-existent computer)

 /code

 should give a (language-specific) error message, not an UnicodeDecodeError

 TJG
--
 import wmi
 wmi.WMI('non-existent computer')
Traceback (most recent call last):
  File stdin, line 1, in module
  File C:\Python25\lib\wmi.py, line 1199, in connect
handle_com_error (error_info)
  File C:\Python25\lib\wmi.py, line 184, in handle_com_error
exception_string = [u%s - %s % (hex (hresult_code),
hresult_name)]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
4: ordinal
not in range(128)
--
yup,error_info contains the Chinese encoded string. All of the Simple
Chinese Windows use the CP936.Every Chinese word utilizes two
bytes.Maybe you can fix this bug by modifying  handle_com_error.

Patrol
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-16 Thread Tim Golden
patrol wrote:
 import wmi
 wmi.WMI('non-existent computer')
 Traceback (most recent call last):
   File stdin, line 1, in module
   File C:\Python25\lib\wmi.py, line 1199, in connect
 handle_com_error (error_info)
   File C:\Python25\lib\wmi.py, line 184, in handle_com_error
 exception_string = [u%s - %s % (hex (hresult_code),
 hresult_name)]
 UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
 4: ordinal
 not in range(128)
 --
 yup,error_info contains the Chinese encoded string. All of the Simple
 Chinese Windows use the CP936.Every Chinese word utilizes two
 bytes.Maybe you can fix this bug by modifying  handle_com_error.


Well, that's what I've done in that latest version.
Only I naively assumed
that I could use sys.stdout.encoding to determine
the encoding. I'll have to try harder.

TJG
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-16 Thread Tim Golden
patrol wrote:
 On 7月17日, 上午12时16分, Tim Golden [EMAIL PROTECTED] wrote:
 Assuming that the error comes back in the sys.stdout encoding, the following 
 version *should* work ok. I still haven't got a non-English set up to test 
 it on, but it certainly does return a Unicode error message.

 http://timgolden.me.uk/wmi-project/wmi.py

 The usual test case, if you wouldn't mind:

 code
 import wmi

 wmi.WMI (non-existent computer)

 /code

 should give a (language-specific) error message, not an UnicodeDecodeError

 TJG
 --
 import wmi
 wmi.WMI('non-existent computer')
 Traceback (most recent call last):
   File stdin, line 1, in module
   File C:\Python25\lib\wmi.py, line 1199, in connect
 handle_com_error (error_info)
   File C:\Python25\lib\wmi.py, line 184, in handle_com_error
 exception_string = [u%s - %s % (hex (hresult_code),
 hresult_name)]
 UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
 4: ordinal
 not in range(128)
 --
 yup,error_info contains the Chinese encoded string. All of the Simple
 Chinese Windows use the CP936.Every Chinese word utilizes two
 bytes.Maybe you can fix this bug by modifying  handle_com_error.

Can you confirm that that last bit of
code was run with the version of wmi.py
currently at:

http://timgolden.me.uk/wmi-project/wmi.py

That version should already be decoding the
string correctly.

TJG
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-16 Thread patrol
On 7月17日, 上午3时20分, Tim Golden [EMAIL PROTECTED] wrote:
 patrol wrote:
  On 7月17日, 上午12时16分, Tim Golden [EMAIL PROTECTED] wrote:
  Assuming that the error comes back in the sys.stdout encoding, the 
  following version *should* work ok. I still haven't got a non-English set 
  up to test it on, but it certainly does return a Unicode error message.

 http://timgolden.me.uk/wmi-project/wmi.py

  The usual test case, if you wouldn't mind:

  code
  import wmi

  wmi.WMI (non-existent computer)

  /code

  should give a (language-specific) error message, not an UnicodeDecodeError

  TJG
  --
  import wmi
  wmi.WMI('non-existent computer')
  Traceback (most recent call last):
File stdin, line 1, in module
File C:\Python25\lib\wmi.py, line 1199, in connect
  handle_com_error (error_info)
File C:\Python25\lib\wmi.py, line 184, in handle_com_error
  exception_string = [u%s - %s % (hex (hresult_code),
  hresult_name)]
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position
  4: ordinal
  not in range(128)
  --
  yup,error_info contains the Chinese encoded string. All of the Simple
  Chinese Windows use the CP936.Every Chinese word utilizes two
  bytes.Maybe you can fix this bug by modifying  handle_com_error.

 Can you confirm that that last bit of
 code was run with the version of wmi.py
 currently at:

 http://timgolden.me.uk/wmi-project/wmi.py

 That version should already be decoding the
 string correctly.

 TJG

 import wmi
 wmi.WMI('non-existent computer')

Traceback (most recent call last):
  File pyshell#2, line 1, in module
wmi.WMI('non-existent computer')
  File C:\Python25\lib\wmi.py, line 1199, in connect
handle_com_error (error_info)
  File C:\Python25\lib\wmi.py, line 189, in handle_com_error
raise x_wmi, u\n.join (exception_string)
x_wmi: unprintable x_wmi object
--
# -*- coding:utf-8 -*-
import wmi
from time import sleep

c = wmi.WMI ()
process_watcher = c.Win32_Process.watch_for(creation)
while True:
new_process = process_watcher()
if new_process.Caption == 'notepad.exe':
print start killing..
sleep(5)
result = new_process.Terminate()
print killed
When I kill the notepad.exe manually,it also results in errors.
Traceback (most recent call last):
  File C:\Documents and Settings\patrol\桌面\test.py, line 12, in
module
result = new_process.Terminate()
  File C:\Python25\lib\wmi.py, line 396, in __call__
handle_com_error (error_info)
  File C:\Python25\lib\wmi.py, line 188, in handle_com_error
exception_string.append (u  %s - %s % (hex (scode),
(error_description or
u).decode (sys.stdout.encoding).strip ()))
UnicodeEncodeError: 'ascii' codec can't encode characters in position
0-2: ordin
al not in range(128)
---
Patrol
--
http://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-16 Thread patrol
I will try to modify the wmi.py ,however I'm a novice.It will take a
long time. You can give it up temporarily. If you don't mind ,can you
tell me where needs modifying and how? Just unicode? Or Other?
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-15 Thread Tim Golden

patrol wrote:

Situation (2):
result = new_process.terminate()
  File C:\Python25\lib\wmi.py, line 494, in __getattr__
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)

BTW, My windows' languange is Chinese.



Well that looks embarrassingly like a complete lack
of unicode-awareness in the wmi module. Would you
mind trying this version:

http://timgolden.me.uk/wmi-project/wmi.py

which is a copy of the svn trunk to see if that
improves the UnicodeDecode error, please? I'll
try to get an install of a non-English edition of
Windows but, as you might imagine, I normally run
the UK version so don't hit these kind of issue
myself.

TJG
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-15 Thread Tim Golden

patrol wrote:

Situation (1):
result = new_process.terminate()
TypeError: 'int' object is not callable


I'm not sure exactly what's causing that
particular effect, but I would suggest that
you call the method as .Terminate (note the
initial capital). On my box, calling .terminate
simply raises an AttributeError as expected,
but I do remember encountering the situation
you're describing in some situation which
now escapes me.

At any rate, try using:

result, = new_process.Terminate ()

and note that the return value is a tuple,
not a single number. The code will work either
way, but in your case result will be a tuple
of length one; in mine, result will be a number.

TJG
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-15 Thread patrol
 http://timgolden.me.uk/wmi-project/wmi.py

It cannot work either.

 which is a copy of the svn trunk to see if that
 improves the UnicodeDecode error, please? I'll
 try to get an install of a non-English edition of
 Windows but, as you might imagine, I normally run
 the UK version so don't hit these kind of issue
 myself.

I expect you can test successfully at a non-English edition

--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-15 Thread patrol


 At any rate, try using:

 result, = new_process.Terminate ()

Windows is sometime case insensitive,but the python is case sensitive.
I also encountered this kind of problems.

Thanks for Tim's help.

Patrol
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-14 Thread patrol
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
  processNamescrcons.exe/processName
  processNameTXPlatform.exe/processName
  processNamemdm.exe/processName
  processNameFNPLicensingService.exe/processName
  processNamenotepad.exe/processName
  processNameuedit32.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

Re: About wmi

2008-07-14 Thread Tim Golden

Larry Bates 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)


[... snip code ...]

You should probably post this to comp.python.windows.  Tim Golden 
(author of WMI interface) monitors that list religously (thanks Tim).



Actually, I follow this one pretty much, too. I've just been a bit busy
these last few days. And still am, so this answer will be short :)


1) I'm not sure if WMI can be forced to close down system processes,
but if it can it's probably by means of specifying one or more
privileges when you connect. Try looking in the WMI newsgroups
for a more general (non-Python) answer to this and I'll happily
explain how to apply it in a Python context.

2) I can't quite see from this traceback where the problem
arises. Have you snipped the traceback at all, or was that
all there was? Can you narrow the thing down to a short
snippet of code which I'm likely to be able to run independently,
please?

Sorry for the haste.

TJG
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-14 Thread patrol

Situation (1):
result = new_process.terminate()
TypeError: 'int' object is not callable

Situation (2):
result = new_process.terminate()
  File C:\Python25\lib\wmi.py, line 494, in __getattr__
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)

BTW, My windows' languange is Chinese.
--
http://mail.python.org/mailman/listinfo/python-list


About wmi

2008-07-13 Thread patrol
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
processNamescrcons.exe/processName
processNameTXPlatform.exe/processName
processNamemdm.exe/processName
processNameFNPLicensingService.exe/processName
processNamenotepad.exe/processName
processNameuedit32.exe/processName
/processTerminateList
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-13 Thread Larry Bates

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
processNamescrcons.exe/processName
processNameTXPlatform.exe/processName
processNamemdm.exe/processName
processNameFNPLicensingService.exe/processName
processNamenotepad.exe/processName
processNameuedit32.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
--
http://mail.python.org/mailman/listinfo/python-list


Re: About wmi

2008-07-13 Thread patrol
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
  processNamescrcons.exe/processName
  processNameTXPlatform.exe/processName
  processNamemdm.exe/processName
  processNameFNPLicensingService.exe/processName
  processNamenotepad.exe/processName
  processNameuedit32.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://mail.python.org/mailman/listinfo/python-list

Re: About wmi

2008-07-13 Thread Larry Bates
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
 processNamescrcons.exe/processName
 processNameTXPlatform.exe/processName
 processNamemdm.exe/processName
 processNameFNPLicensingService.exe/processName
 processNamenotepad.exe/processName
 processNameuedit32.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
--
http://mail.python.org/mailman/listinfo/python-list