我是一位经验丰富的 Delphi 开发人员,想创建类似无缝终端服务的东西,其中应用程序在服务器上执行但出现在客户端的桌面上。
对于在服务器上工作的人,我不希望他们看到远程应用程序正在运行(除非他们查看了正在运行的进程列表)。
我不知道如何去做,从哪里开始,如何让应用程序渲染到服务器桌面以外的表面。
我是一位经验丰富的 Delphi 开发人员,想创建类似无缝终端服务的东西,其中应用程序在服务器上执行但出现在客户端的桌面上。
对于在服务器上工作的人,我不希望他们看到远程应用程序正在运行(除非他们查看了正在运行的进程列表)。
我不知道如何去做,从哪里开始,如何让应用程序渲染到服务器桌面以外的表面。
从 2008 年开始,终端服务(已更名为远程桌面服务)提供的 RemoteApps 完全符合您的描述。Citrix (XenApp) 可以在所有 Windows(服务器)版本上执行此操作。因此,在决定自己重新创建它们之前,您可能需要查看这些产品。
如果您决定继续,此链接可能会很有趣,它是一个名为“Extending Microsoft's Terminal Services Client To Provide Seamless Windows”的示例项目
根据您的描述,我想说您应该考虑编写 Windows 服务(而不是终端服务)并使用进程间通信(IPC)系统将状态信息获取到可以运行的“客户端”应用程序由适当的用户在同一台机器上或通过网络的另一台机器上。
我自己,我正是使用RemObjects SDK做到这一点的,这使我的客户端应用程序看起来只是在进行函数调用,但实际上它们会转到实现它们的服务器。然后,服务器可以在一个(或多个)线程中继续其工作,并且所有用户界面都在客户端中完成,客户端使用 IPC 通道找出要显示的内容。