【发布时间】:2017-06-17 22:57:49
【问题描述】:
是否可以在不需要提升的情况下运行 comserver。
例如,我可以从 Python.TestServer(如下)运行代码,但它需要提升。
Python.TestServer 代码位于:Consuming Python COM Server from .NET
是否可以运行不需要提升的 com 服务器,这样我就可以在没有管理员密码的情况下运行 com 对象。
例如
import pythoncom
from win32com.server import localserver
class demoObj(object):
_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
_reg_clsid_ = "{FA501660-8BB0-42F6-842B-A757FA3098DC}"
_reg_desc_ = "Demo COM server"
_reg_progid_ = "Python.Demo"
_public_methods_ = ['hello']
def hello(self, who):
return "Hellow " + who
localserver.serve('B83DD222-7750-413D-A9AD-01B37021B24B')
我试过上面的代码,但上面写着pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)
如何为本地服务器生成有效的类字符串?
vba 示例:
Sub demodemo()
Set obj = CreateObject("Python.Demo")
Debug.Print obj.Hello("World")
End Sub
【问题讨论】:
-
Com 服务器将被 VBA 使用。你的 vba 有什么问题?
-
出于好奇,你想做什么?我知道在 vba 中还有其他方法可以链接 excel 和 python
-
你试过 xlwings 吗?
-
抱歉,因为我正在度假,所以回复晚了!我想将 python 用于 Microsoft Word 而不是 excel。我试过
import xlwings as xw; xw.serve(),但我不知道如何从vba(word)中使用它。
标签: python vb.net vba winapi pywin32