首页 > 解决方案 > 如何在没有管理员权限的情况下创建 Python COM 服务器?

问题描述

我想运行一个 Python COM 服务器并能够从另一个 Python 客户端 ping 它,而无需提供管理员访问权限。(我已经按照这里的教程进行操作,并获得了 COM 通信以使用管理员权限)。

我不知道我错过了什么,但是当我运行这个 COM 服务器代码时似乎什么都没有发生。我还得到了 的句柄打印输出65536,我猜这毫无意义。(我知道可以在没有管理员权限的情况下编辑 HKCU 注册表,但我真的不明白我应该如何使用此服务器代码实现这一点。)

服务器.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)

客户端.py

import win32com.client
server = win32com.client.Dispatch("{6B39CAA1-A320-4CB0-8DB4-352AA81E460E}")
print(server.ping())

如果您需要我提供更多信息,请告诉我。(我在 Windows 10 机器上使用 Python 3.8)

顺便说一句,如果有帮助的话,我也可以使用 AutoHotkey 帮助在注册表中注册服务器。(我的最终目标是让 AutoHotkey 客户端与服务器对话,但首先我只需要让该服务器与基本的 python 客户端一起工作,而无需授予管理员权限)

标签: pythoncom

解决方案


推荐阅读