【问题标题】:Python win32com ErrorPython win32com 错误
【发布时间】:2023-03-24 06:55:01
【问题描述】:

我在我的设置脚本中得到了以下回溯:

Exception in Tkinter callback
Traceback (most recent call last):
  File "Tkinter.pyc", line 1410, in __call__
  File "Setup.py", line 233, in step6
  File "Setup.py", line 203, in step7
  File "Setup.py", line 143, in step8
  File "Setup.py", line 76, in step9
  File "win32com\client\gencache.pyc", line 540, in EnsureDispatch
  File "win32com\client\CLSIDToClass.pyc", line 46, in GetClass
KeyError: '{4FBE7FE9-4AD1-4D70-BB77-66963016FD09}'

我以前从未见过这个,也不知道它是什么意思。有什么想法吗?

编辑:

我认为它来自这段代码:

fw = win32com.client.gencache.EnsureDispatch('HNetCfg.FwMgr', 0)
apps = fw.LocalPolicy.CurrentProfile.AuthorizedApplications
newapp = win32com.client.Dispatch('HNetCfg.FwAuthorizedApplication')
newapp.Name="Web Lock by ZBrown Technology"
newapp.ProcessImageFileName=d+"/ZBrownTechnology/Web Lock/Proxy.exe"
newapp.Enabled = True
apps.Add(newapp)

【问题讨论】:

    标签: python win32com traceback


    【解决方案1】:

    这意味着COM无法实例化id为{4FBE7FE9-4AD1-4D70-BB77-66963016FD09}的类(可能是HNetCfg.FwMgrWindows Firewall scripting interface)。

    我认为您必须是管理员才能执行此操作,所以这可能只是权限问题。

    你有管理权限,但它仍然不起作用,也许那个类已经以某种方式取消注册。尝试发出命令:

    regsvr32 %windir%\system32\hnetcfg.dll
    

    【讨论】:

    • 不,我什至不知道该怎么做。
    • 我这样做了,它说它已注册,但它仍然不起作用并引发同样的错误。
    • 这个相同的脚本工作得很好,直到我编译它。然后它只是不断提出这个错误。