gpt4 book ai didi

具有 VBA 延迟出价的 Python COM 服务器 + 跳过获胜注册(无管理员权限)

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:35 24 4
gpt4 key购买 nike

我正在尝试将 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 运行时基本上使用 CoGetClassObject引擎盖下的 COM API - CreateObject() 函数本质上只是它的一个薄包装(它调用 CLSIDFromString 首先从参数中定位 CLSID)。这两个函数都需要注册该类。

关于具有 VBA 延迟出价的 Python COM 服务器 + 跳过获胜注册(无管理员权限),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39175926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com