7

当我在 pythonwin 中查看 COM 浏览器时,我正在寻找一个 python Zune(Windows 媒体的东西)api。我发现了一个叫做 ZuneWmdu 类型库 (1.0) 的东西。我在那个库上使用了makepy,它生成了一个文件

9FE20C05-81CE-46D7-9C56-FD97A865BBB8x0x1x0.py 

python 2.7.3\Lib\site-packages\win32com\gen_py

我不知道要传入什么

 win32com.client.gencache.EnsureDispatch('???')

我试着打电话

win32com.client.gencache.EnsureDispatch('9FE20C0581CE46D79C56FD97A865BBB8')

导致异常 (pywintypes.com_error)

(.py 文件的 x0x1x0 部分似乎无关)

我也试过了

win32com.client.gencache.GetModuleForCLSID('9FE20C05-81CE-46D7-9C56-FD97A865BBB8')
and
win32com.client.gencache.GetModuleForProgID('9FE20C0581CE46D79C56FD97A865BBB8')

两者都返回无。我被困在这里,我需要找到该库的名称(对于iTu​​nes,您可以调用:

win32com.client.gencache.EnsureDispatch('iTunes Application')

例如)或如何使用 GUID 调用模块

甚至有人告诉我我做错了什么。

4

1 回答 1

2

CoClass 的名称可以在生成文件的注释中找到(它们基于来自 的信息pythoncom.ProgIDFromCLSID)。

我没有 Zune,但是,例如,如果我运行

win32com.client.gencache.EnsureModule('{420B2830-E718-11CF-893D-00A0C9054228}', 0, 1, 0)

这将生成一个名为的文件420B2830-E718-11CF-893D-00A0C9054228x0x1x0.py,我可以从中挖掘出相关名称:

C:\Users\username\AppData\Local\Temp\gen_py\3.6>grep 'known by' *.py
420B2830-E718-11CF-893D-00A0C9054228x0x1x0.py:# This CoClass is known by the name 'Scripting.Dictionary'
420B2830-E718-11CF-893D-00A0C9054228x0x1x0.py:# This CoClass is known by the name 'Scripting.Encoder'
420B2830-E718-11CF-893D-00A0C9054228x0x1x0.py:# This CoClass is known by the name 'Scripting.FileSystemObject'
于 2018-08-12T16:27:50.190 回答