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 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-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:
>
> >> 
> >> import wmi
>
> >> wmi.WMI ("non-existent computer")
>
> >> 
>
> >> should give a (language-specific) error message, not an UnicodeDecodeError
>
> >> TJG
> > --
>  import wmi
>  wmi.WMI('non-existent computer')
> > Traceback (most recent call last):
> >   File "", line 1, in 
> >   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 "", line 1, in 
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: 
--
# -*- 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

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 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:
>>
>> 
>> import wmi
>>
>> wmi.WMI ("non-existent computer")
>>
>> 
>>
>> should give a (language-specific) error message, not an UnicodeDecodeError
>>
>> TJG
> --
 import wmi
 wmi.WMI('non-existent computer')
> Traceback (most recent call last):
>   File "", line 1, in 
>   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 Tim Golden
patrol wrote:
 import wmi
 wmi.WMI('non-existent computer')
> Traceback (most recent call last):
>   File "", line 1, in 
>   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 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:
>
> 
> import wmi
>
> wmi.WMI ("non-existent computer")
>
> 
>
> should give a (language-specific) error message, not an UnicodeDecodeError
>
> TJG
--
>>> import wmi
>>> wmi.WMI('non-existent computer')
Traceback (most recent call last):
  File "", line 1, in 
  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 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:
>
> 
> import os, sys
>
> print sys.stdout.encoding
> os.system ("chcp")
>
> 
>
> 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 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:


import wmi

wmi.WMI ("non-existent computer")



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 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:


import os, sys

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



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 
> > 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:
>
> 
> import pythoncom
> import win32com.client
>
> try:
>   win32com.client.GetObject ("winmgmts://blahblah")
> except pythoncom.com_error, info:
>   for i in info:
> print repr (i)
>
> 
>
> 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:
> The errors are in the following:
> 
> Traceback (most recent call last):
>   File "D:\My Documents\code\python\wmi\test.py", line 5, in 
> 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:


import pythoncom
import win32com.client

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



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?
>
> 
> 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.
> #
> 
>
> 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 
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:

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?


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.
#


Thanks

TJG
--
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-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 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 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-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


Re: About wmi

2008-07-14 Thread patrol
Hi,
> 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.
I use VBS to kill these processes,the VBS cannot kill these either.

> 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?
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"
We must start the notepad.exe manually, then (1) kill the notepad.exe
by this code.
(2)we kill the notepad.exe before this code manually. Both will result
in errors.
--
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
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-
> >>> 
> >>> 
> >>> scrcons.exe
> >>> TXPlatform.exe
> >>> mdm.exe
> >>> FNPLicensingService.exe
> >>> notepad.exe
> >>> uedit32.exe
> >>> 
> >> 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-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
>>> 
>>> 
>>> scrcons.exe
>>> TXPlatform.exe
>>> mdm.exe
>>> FNPLicensingService.exe
>>> notepad.exe
>>> uedit32.exe
>>> 
>> 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

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
> > 
> > 
> > scrcons.exe
> > TXPlatform.exe
> > mdm.exe
> > FNPLicensingService.exe
> > notepad.exe
> > uedit32.exe
> > 
>
> 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:

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---


scrcons.exe
TXPlatform.exe
mdm.exe
FNPLicensingService.exe
notepad.exe
uedit32.exe



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


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---


scrcons.exe
TXPlatform.exe
mdm.exe
FNPLicensingService.exe
notepad.exe
uedit32.exe

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