关于 ipc:Windows Vista Session 0 和桌面之间如何通信?

关于 ipc:Windows Vista Session 0 和桌面之间如何通信?

How do you communicate between Windows Vista Session 0 and Desktop?

在 Vista 之前的早期版本的 Windows 中,您可以让 Windows 服务与当前登录的桌面用户交互,以轻松地在屏幕上显示来自该服务的信息。在 Windows Vista 中,为安全起见,添加了会话 0,以将服务与桌面隔离。在服务和在 Session 0 之外运行的应用程序之间进行通信的简单方法是什么?到目前为止,我已经通过使用 TCP/IP 在两者之间进行通信来解决这个问题,但这似乎是一种草率的方式。


您也可以使用共享内存或命名管道来促进 IPC。从概念上讲,这类似于 TCP/IP,但您不必担心找不到未使用的端口。

您必须确保您创建的命名对象以 "Global\\\\" 为前缀,以允许所有会话访问它们,如此处所述。

AFAIK 服务无法再直接与桌面交互了。


确实,出于安全原因,不再能够直接与"桌面"进行通信。当您生活在具有多个活动用户远程会话的机器中时,"桌面"到底是什么?

解决问题的一般方法是使用通过某种 RPC 机制(TCP/IP、IPC、.Net Remoting Channels over 其中之一等)进行通信的服务应用程序。这有点痛苦,但我认为这些好处值得改变。


对于与桌面对话的服务,您几乎被其中一种 RPC 机制所困。为此目的,.NET 远程处理机制 (IpcServerChannel) 并不难实现。

同样使用 .NET,桌面应用程序可以使用 ServiceController.ExecuteCommand 直接向服务发送消息。服务通过 ServiceBase.OnCustomCommand 接收这些命令。这更容易做到,如果控制服务是您的唯一要求,这就是您所需要的。


推荐阅读

    linux用命令进去桌面?

    linux用命令进去桌面?,密码,系统,终端,官网,设备,环境,桌面,快捷键,命令,窗

    linux服务器分区命令?

    linux服务器分区命令?,系统,管理,信息,设备,时间,命令,基础,首次,平均,情况,l

    linux登录系统的命令?

    linux登录系统的命令?,系统,工作,地址,名称,网络,密码,信息,服务,软件,资料,l

    linux命令中添加用户?

    linux命令中添加用户?,系统,密码,软件,用户,命令,信息,目录,用户名,账号,文

    linux服务器上传命令?

    linux服务器上传命令?,服务,软件,平台,数据,工具,系统,手机,电脑,设备,官网,

    linux命令更改用户?

    linux命令更改用户?,系统,密码,管理,用户,命令,环境,工作,地址,电脑,文件,lin

    linux重新服务命令?

    linux重新服务命令?,服务,系统,网络,标准,工作,设备,命令,名称,信息,网络服

    linux命令创建用户组?

    linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管

    linux命令给用户授权?

    linux命令给用户授权?,系统,数字,管理,权限,命令,密码,工具,时间,软件,信息,l

    linux桌面可视命令?

    linux桌面可视命令?,工具,系统,发行,密码,地方,服务,管理,技术,终端,命令,Lin

    linux命令创建用户组?

    linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管

    查看linux用户命令行?

    查看linux用户命令行?,信息,系统,时间,名称,密码,用户,命令,地址,状态,设备,L

    linux所有用户命令行?

    linux所有用户命令行?,系统,信息,地址,工作,密码,命令,用户,时间,电脑,管理,L

    linux用户下的命令是?

    linux用户下的命令是?,系统,工作,管理,地址,命令,密码,基础,信息,目录,新增,L

    linux服务器基本命令?

    linux服务器基本命令?,地址,系统,设备,网络,工作,标准,信息,电脑,命令,密码,l

    linux用户登录的命令?

    linux用户登录的命令?,系统,信息,工作,地址,时间,密码,名称,命令,电脑,软件,l

    linux服务器下载命令?

    linux服务器下载命令?,服务,密码,系统,档案,工具,网络,公共,百度,地址,认证,l

    linux命令怎么停服务?

    linux命令怎么停服务?,服务,系统,状态,代码,跨行,软件,情况,第一,名称,命令,l

    linux关机用户命令?

    linux关机用户命令?,系统,工作,信息,状态,管理,命令,基础,目录,用户,功能,lin

    linux服务端退出命令?

    linux服务端退出命令?,档案,命令,环境,异常,标准,网络,模式,终端,编辑,文件,l