Page 1 of 1

[FIXED] PyWin32-Probleme ab EventGhost_0.3.6.1437_Setup.exe

Posted: Sun Jun 29, 2008 11:07 am
by Prinz
Hallo,

ich habe mit folgendem Script seit dem Build 1437 Probleme:
  • <?xml version="1.0" encoding="UTF-8" ?>
    <EventGhost Version="1438">
    <Action>
    EventGhost.PythonScript(u'from win32com.client import GetObject\nWMI = GetObject(\'winmgmts:\')\nEntries = WMI.ExecQuery(\'select * from Win32_Process where Name="notepad.exe"\')\n')
    </Action>
    </EventGhost>
Dieses Script bringt folgende Fehlermeldung:
  • 12:58:01 Traceback (most recent call last):
    12:58:01 Python script "5", line 3, in <module>
    12:58:01 Entries = WMI.ExecQuery('select * from Win32_Process where Name="notepad.exe"')
    12:58:01 File "win32com\client\dynamic.pyc", line 467, in __getattr__
    12:58:01 File "win32com\client\dynamic.pyc", line 295, in _make_method_
    12:58:01 File "win32com\client\build.pyc", line 297, in MakeFuncMethod
    12:58:01 File "win32com\client\build.pyc", line 318, in MakeDispatchFuncMethod
    12:58:01 File "win32com\client\build.pyc", line 604, in BuildCallList
    12:58:01 File "win32com\client\build.pyc", line 542, in MakePublicAttributeName
    12:58:01 File "win32com\client\build.pyc", line 542, in <lambda>
    12:58:01 UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 26: ordinal not in range(128)
Ist auf das win32com Release 211 upgedated worden?

Was mach ich falsch?

Gruß
Prinz

Re: PyWin32-Probleme ab EventGhost_0.3.6.1437_Setup.exe

Posted: Sun Jun 29, 2008 3:23 pm
by Bitmonster
Ja, es ist auf 211 upgedated worden. Habe da jetzt auch keine direkte Idee, aber versuche doch mal den Query String als Unicode zu schicken, also als

Code: Select all

Entries = WMI.ExecQuery(u'select * from Win32_Process where Name="notepad.exe"')

Re: PyWin32-Probleme ab EventGhost_0.3.6.1437_Setup.exe

Posted: Sun Jun 29, 2008 4:57 pm
by Prinz
Hallo,
Bitmonster wrote:Habe da jetzt auch keine direkte Idee, aber versuche doch mal den Query String als Unicode zu schicken,
Hatte ich auch schon ohne Erfolg versucht. Das dubiose ist daran, dass der String keine besonderen Zeichen enthält.

Gruß
Prinz

Re: PyWin32-Probleme ab EventGhost_0.3.6.1437_Setup.exe

Posted: Sun Jun 29, 2008 5:13 pm
by Bitmonster
Na ja, an Position 26 soll zumindest ein Zeichen ├╝ber ord(128) sein.

Was noch viel witziger ist: wenn ich EG ├╝ber einen normalen Python Interpreter laufen lasse dann geht es. Nur die py2exe Version knallt.

Re: PyWin32-Probleme ab EventGhost_0.3.6.1437_Setup.exe

Posted: Mon Jun 30, 2008 5:04 pm
by Bitmonster
Ich habe jetzt mal wieder die 210 eingebaut. Ich komme da nicht hinter, wo der Fehler liegt. Irgendwie h├ñngt es mit dem Namen des COM-Objektes bzw. seiner Attribute zusammen, die wohl Unicode kodiert sein k├Ânnen, aber unter py2exe merkt es win32com irgendwie nicht. Das k├Ânnen wir uns unter 0.3.7 dann genauer ansehen. Insgesamt bin ich auch kein Fan von win32com mehr. Wo es geht versuche ich es durch ctypes/comtypes zu ersetzen.

=> 0.3.6.1445

Re: PyWin32-Probleme ab EventGhost_0.3.6.1437_Setup.exe

Posted: Mon Jun 30, 2008 10:12 pm
by Prinz
Hallo,

win32com scheint da unschuldig zu sein, es liegt wohl an Python selber!

Die Phyton-Funktion string.letters bewirkt den Fehler. Es k├Ânnte IMO sein, dass der String nicht terminiert ist. Vielleicht daher das unterschiedliche Verhalten.

Code: Select all

import string
repr(string.letters)
print string.letters
bringt den gleichen Fehler.

Inzwischen gibt es ein CVS-Fix von win32com, welcher diese Funktion nicht mehr nutzt.

Gruß
Prinz

Re: PyWin32-Probleme ab EventGhost_0.3.6.1437_Setup.exe

Posted: Tue Jul 01, 2008 2:20 pm
by Bitmonster
Naja, das ist dann schon ein Fehler von pywin32. Denn string.letters enth├ñlt alle Buchstaben, die sich aus der momentanen Locale Einstellung ergeben. Und da geh├Âren bei uns nicht nur die Umlaute zu, sondern alles was man in Latin-1 als Buchstaben ansehen kann. Deshalb ist der String auch so lang.

Aber ist ja witzig, dass der CVS Fix gerade mal einen Tag alt ist. Hattest du den Bug dort gemeldet?