Я пытаюсь сделать import
Код Python в VBA.Python COM-сервер с 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