Python win32com不知道模块的名称

Aze*_*rah 5 python api zune win32com

当我在pythonwin中查看COM浏览器时,我正在寻找一个python Zune(Windows媒体事物)api.我找到了一个名为ZuneWmdu Type Library(1.0)的东西.我在lib上使用了makepy,它生成了一个文件

9FE20C05-81CE-46D7-9C56-FD97A865BBB8x0x1x0.py 
Run Code Online (Sandbox Code Playgroud)

python 2.7.3\Lib\site-packages\win32com\gen_py
Run Code Online (Sandbox Code Playgroud)

我不知道要传递什么

 win32com.client.gencache.EnsureDispatch('???')
Run Code Online (Sandbox Code Playgroud)

我试着打电话

win32com.client.gencache.EnsureDispatch('9FE20C0581CE46D79C56FD97A865BBB8')
Run Code Online (Sandbox Code Playgroud)

导致异常(pywintypes.com_error)

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

我试过同样的

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

两者都返回无.我被困在这里,我需要找到所谓的库(对于itunes,你会打电话:

win32com.client.gencache.EnsureDispatch('iTunes Application')
Run Code Online (Sandbox Code Playgroud)

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

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

fug*_*ede 4

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

我没有 Zune,但如果我运行

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

这将生成一个名为的文件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'
Run Code Online (Sandbox Code Playgroud)