如何检测我的服务是否在TSE会话中运行

How to detect if my service is running in a TSE session?

本文关键字:是否 TSE 会话 运行 服务 我的 何检测 检测      更新时间:2023-10-16

我编写了一个服务,当它在TSE服务器上运行时应该以一种特殊的方式运行,在会话0

我在网上查找给了我以下功能:

GetSystemMetrics(SM_REMOTESESSION)

当我的服务在TSE服务器上的用户会话中运行时,它确实返回TRUE。但是,当服务在会话0中运行时,它仍然返回FALSE

据我所知,GetSystemMetrics或多或少与UI相关,所以它不返回会话0的TRUE是有意义的,因为这个会话不应该绘制任何东西。

是否有其他方法可以可靠地确定我的服务是否在会话0下和TSE服务器上运行?

谢谢。

操作系统为Windows 2008 server

一个快速hack是查看是否设置了CLIENTNAME和SESSIONNAME环境变量。

问题是,当在服务器上的单独进程中启动时,它可能不可用,但由于您使用的是W2K8,因此应该没有问题。