我想运行一个Python COM服务器,并能够从另一个Python客户端ping它,而不必提供管理员访问权限。 (我已经按照教程here进行了学习,并获得了COM通信以使用管理员权限。)
我不知道缺少什么,但是运行此COM服务器代码时似乎什么也没发生。我还得到65536
的句柄打印输出,我认为这毫无意义。 (我知道HKCU注册表可以在没有管理员权限的情况下进行编辑,尽管我不太了解如何使用此服务器代码来实现。)
server.py
import pythoncom
import win32com
from win32com.server.util import wrap
_reg_clsid_ = "{6B39CAA1-A320-4CB0-8DB4-352AA81E460E}"
class ActiveObject:
_public_methods_ = ["ping"]
def ping(self):
return "1"
if __name__ == "__main__":
ob = win32com.server.util.wrap(ActiveObject)
handle = pythoncom.RegisterActiveObject(ob, _reg_clsid_, 0)
print(handle)
client.py
import win32com.client
server = win32com.client.Dispatch("{6B39CAA1-A320-4CB0-8DB4-352AA81E460E}")
print(server.ping())
如果您需要我的更多信息,请告诉我。 (我正在Windows 10计算机上使用Python 3.8)
顺便说一句,如果有帮助,我也可以使用AutoHotkey帮助在注册表中注册服务器。 (我的最终目标是让AutoHotkey客户端与服务器对话,但是首先,我只需要让该服务器与基本的python客户端一起使用,而无需授予管理员权限)