如何检测我的服务是否在TSE会话中运行
How to detect if my service is running in a TSE session?
我编写了一个服务,当它在TSE服务器上运行时应该以一种特殊的方式运行,在会话0。
我在网上查找给了我以下功能:
GetSystemMetrics(SM_REMOTESESSION)
当我的服务在TSE服务器上的用户会话中运行时,它确实返回TRUE
。但是,当服务在会话0中运行时,它仍然返回FALSE
。
据我所知,GetSystemMetrics
或多或少与UI相关,所以它不返回会话0的TRUE
是有意义的,因为这个会话不应该绘制任何东西。
是否有其他方法可以可靠地确定我的服务是否在会话0下和TSE服务器上运行?
谢谢。
操作系统为Windows 2008 server
一个快速hack是查看是否设置了CLIENTNAME和SESSIONNAME环境变量。
问题是,当在服务器上的单独进程中启动时,它可能不可用,但由于您使用的是W2K8,因此应该没有问题。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 是否可以从int转换为enum类类型
- 无论条件是否为true,if总是在c++中执行
- 如何找到大小'x'数组是否完全填充,在C++?
- 检查值是否在集合p1和p2中,但不在p3中
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 检查 std::shared_ptr<> 的当前底层类型是否为 T
- 在c++中检查长方体是否尽可能快地重叠(无迭代)
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- C/C++预处理器是否可以检测一些编译器选项
- 如何检测我的服务是否在TSE会话中运行