我正在寻找确定我们的应用程序是否在 XenDesktop 会话上而不是在本地运行。这是我到目前为止发现的:
我们目前有检测 Citrix XenApp 会话的代码,类似于 Helge Klein 在“用于确定应用程序是否在 Citrix 或终端服务上运行的 API ”中提到的解决方案。
遗憾的是,XenDesktop 环境中的解决方案正在返回一个表示本地控制台会话的 a WTSClientProtocolType
。0
在回答同样的问题时,Josh Weatherly 提到了检查 sessionname 环境变量。
但是,在 XenDesktop 环境中进行快速控制台检查echo %sessionname%
会返回“控制台”。
来自“ Detect citrix”应用程序模式? ”John Sibly 提出了一种检测远程会话的解决方案(特别是不是 Citrix):
GetSystemMetrics(SM_REMOTESESSION)
然而返回 0 这也意味着它是一个本地会话。
有谁知道检测它是 XenDesktop 会话的方法吗?就您所见,我所有的尝试都返回该会话是本地控制台会话。
我正在使用 XenDesktop Express 5.5,使用 Citrix Receiver Web 插件访问桌面。