为什么genguid.exe生成的clsid不起作用?

时间:2012-08-29 18:38:47

标签: python com pywin32 clsid

我正在尝试修改pywin演示中的exceladdin.py示例。

否则我可以修改它,但当我替换示例中给出的clsid时:

"{C5482ECA-F559-45A0-B078-B2036E6F011A}"

使用genguid.exe或pythoncom.CreateGuid()生成的那个,例如:

"{E44EF798-7FDF-4015-AED6-00234CBBBA77}"

com-addin停止工作。没有跟踪,没有错误只是excel com-objects列表中的以下文本(转换)“加载项未加载。加载com对象时运行时出错。”

我错过了生成clsid的步骤吗?

编辑:我认为我发现了问题... clsid是dll的ID。在python的情况下,clsid引用pythoncomloader27.dll。这是正确的吗? ...但我仍然无法加载正确的python文件。 clsid以某种方式链接到pythoncomloader和原始的pythonfile。如果我生成一个新的clsid,我必须将它链接到pythonloader?怎么样?

1 个答案:

答案 0 :(得分:0)

好的,我认为我找到了答案......

python无法安装在“程序文件”文件夹中,除非您以root用户身份运行所有内容(管理员)。

注册com-service读取/写入<pythonInstallationDir>/Lib/win32com/gen-py目录的python程序。 Word(或使用com服务的程序)也必须能够在那里写(?)。存在非人类可读的字典等。

将python安装到c:/ python27解决了我的问题。现在只有注册程序必须以root身份运行。 Word可以作为普通用户运行。我认为在我的情况下,我第二次没有提供足够的权限(第一次我正确地注册)并且它使用的是原始密钥,从而弄乱了字典。