【发布时间】:2011-12-12 16:31:44
【问题描述】:
我希望确定我们的应用程序是否在 XenDesktop 会话上而不是在本地运行。以下是我目前发现的:
我们目前拥有检测 Citrix XenApp 会话的代码,类似于 Helge Klein 在“API for Determining if App is Running on Citrix or Terminal Services”中提到的解决方案。
遗憾的是,XenDesktop 环境中的解决方案返回了 WTSClientProtocolType 或 0,这表示本地控制台会话。
在回答 Josh Weatherly 提到的检查 sessionname 环境变量的同一个问题时。
但是,在 XenDesktop 环境中使用 echo %sessionname% 进行快速控制台检查会返回“控制台”。
来自“Detect citrix “application mode”?”John Sibly 提出了一种检测远程会话的解决方案(尤其是 Citrix):
GetSystemMetrics(SM_REMOTESESSION) 然而返回 0 这也意味着它是一个本地会话。
有谁知道检测它是 XenDesktop 会话的方法吗?就您所见,我的所有尝试都返回该会话是本地控制台会话。
我正在使用 XenDesktop Express 5.5,使用 Citrix Receiver Web 插件访问桌面。
【问题讨论】:
-
Citrix SDK 在其
WFAPI SDK中提及WFQuerySessionInformation,例如citrix.com/content/dam/citrix/en_us/documents/downloads/sdk/…
标签: session citrix terminal-services xendesktop