2011-04-14 49 views
0

我已经编写了一个服务,该服务在TSE服务器上运行时应以特殊方式运行,在会话0中。如何检测我的服务是否在TSE会话中运行?

我在互联网上查找给了我下面的函数:

GetSystemMetrics(SM_REMOTESESSION) 

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

据我了解的东西跑,GetSystemMetrics是UI或多或少相关,因此它是有道理的,它不会为会话0返回TRUE,因为本届会议不应该什么。

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

谢谢。

操作系统是Windows 2008服务器。

+0

在Windows Server 2008上,所有服务都将在会话0中运行。如果要确保可以使用ProcessIdToSessionId()获取运行服务进程的会话。 – Luke 2011-04-14 11:48:11

回答

0

A 快速入侵用于查看是否设置了CLIENTNAME和SESSIONNAME环境变量。

问题在于它在服务器上的一个单独进程中启动时发现它是might not be available,但由于您在W2K8上,因此应该没问题。

相关问题