Python COM服务器,带有VBA延迟投标+跳过赢注册(无管理员权限)

Python COM服务器,带有VBA延迟投标+跳过赢注册(无管理员权限),python,vba,com,winreg,Python,Vba,Com,Winreg,我正在尝试将Python代码导入到VBA中 下面的代码可以工作,但需要管理员权限。是否有办法绕过win register需要假设我没有管理员权限,但保持“延迟竞价”行为不想每次编译新内容时都引用工具>>参考 class ProofOfConcept(object): def __init__(self): self.output = [] def GetData(self): with open('C:\Users\MyPath\Document

我正在尝试将Python代码导入到VBA中

下面的代码可以工作,但需要管理员权限。是否有办法绕过win register需要假设我没有管理员权限,但保持“延迟竞价”行为不想每次编译新内容时都引用工具>>参考

class ProofOfConcept(object):
    def __init__(self):
        self.output = []

    def GetData(self):
        with open('C:\Users\MyPath\Documents\COMs\SourceData.txt') as FileObj:
            for line in FileObj:
                self.output.append(line)
            return self.output

class COMProofOfConcept(object):
    _reg_clsid_ = "{D25A5B2A-9544-4C07-8077-DB3611BE63E7}"
    _reg_progid_= 'RiskTools.ProofOfConcept'
    _public_methods_ = ['GetData']

def __init__(self):
    self.__ProofOfConcept = ProofOfConcept()

def GetData(self):
    return self.__ProofOfConcept.GetData()

if __name__=='__main__':
    print "Registering COM server..."
    import win32com.server.register
    win32com.server.register.UseCommandLine(COMProofOfConcept)
调用它的VBA代码:

Sub TestProofOfConcept()
    Set PoF = CreateObject("RiskTools.ProofOfConcept")
    x = PoF.GetData()
    MsgBox x(0)
End Sub

简而言之,不是。VBA运行时基本上是在后台使用COM API的——CreateObject函数本质上只是围绕它调用的一个薄型包装器,它首先从参数中找到CLSID。这两个函数都要求注册该类。

简而言之,不是。VBA运行时基本上是在后台使用COM API-CreateObject函数本质上只是一个薄型包装器,它调用该函数首先从参数定位CLSID。这两个函数都要求注册该类