代码之家  ›  专栏  ›  技术社区  ›  JSBÕ±Õ¸Õ£Õ¹

从非提升进程连接到提升的COM服务器

  •  3
  • JSBÕ±Õ¸Õ£Õ¹  · 技术社区  · 15 年前

    我们有一个程序,它启动一个托管本地COM服务器的子进程,由于各种原因,必须提升该进程的启动级别。只要父进程和子进程都被提升,一切都会正常工作。

    但是,我们还希望在父进程未提升时运行。启动子进程将导致一个UAC对话框(这是可接受的),并且子进程似乎正确启动并成功调用 CoRegisterClassObject . 但是,父进程在调用 CoCreateInstance 具有相同的clsid。

    我认为这是某种权限问题。如何在提升的服务器中注册类,以允许从非提升的进程调用它?

    2 回复  |  直到 14 年前
        1
  •  2
  •   wqw    15 年前

    The COM Elevation Moniker 用于访问提升的进程外服务器的几种方法。

        2
  •  1
  •   Sheng Jiang 蒋晟    15 年前

    Interprocess COM marshalling messages are subject to Vista's UIPI . 我建议你用其他的方式交流,比如 a named pipe with ACL modified ,sockets/wcf/remoting与私有协议等,以允许非特权用户访问。