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

Einen Fehler gefunden? Gleich hier melden!
Post Reply
Prinz
Plugin Developer
Posts: 194
Joined: Mon Apr 07, 2008 4:58 am

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

Post by Prinz » Sun Jun 29, 2008 11:07 am

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
Mein HTPC:
Mainboard: Gigabyte GA-G33M-DS2R
CPU: Intel E5200
OS: WinXP SP3
Graphic card: NVIDIA GeForce 210 512MB
TV-Cards: 2 * Digital Everywhere FloppyDTV-C, Terratec Cinergy 1200 DVB-C
HTPC software: DVB Viewer / EventGhost

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

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

Post by Bitmonster » Sun Jun 29, 2008 3:23 pm

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"')
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

Prinz
Plugin Developer
Posts: 194
Joined: Mon Apr 07, 2008 4:58 am

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

Post by Prinz » Sun Jun 29, 2008 4:57 pm

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
Mein HTPC:
Mainboard: Gigabyte GA-G33M-DS2R
CPU: Intel E5200
OS: WinXP SP3
Graphic card: NVIDIA GeForce 210 512MB
TV-Cards: 2 * Digital Everywhere FloppyDTV-C, Terratec Cinergy 1200 DVB-C
HTPC software: DVB Viewer / EventGhost

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

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

Post by Bitmonster » Sun Jun 29, 2008 5:13 pm

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.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

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

Post by Bitmonster » Mon Jun 30, 2008 5:04 pm

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
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

Prinz
Plugin Developer
Posts: 194
Joined: Mon Apr 07, 2008 4:58 am

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

Post by Prinz » Mon Jun 30, 2008 10:12 pm

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
Mein HTPC:
Mainboard: Gigabyte GA-G33M-DS2R
CPU: Intel E5200
OS: WinXP SP3
Graphic card: NVIDIA GeForce 210 512MB
TV-Cards: 2 * Digital Everywhere FloppyDTV-C, Terratec Cinergy 1200 DVB-C
HTPC software: DVB Viewer / EventGhost

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

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

Post by Bitmonster » Tue Jul 01, 2008 2:20 pm

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?
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

Post Reply