我正在尋求確定我們的應用程序是否在XenDesktop會話上運行,而不是在本地運行。以下是我迄今發現:檢測Citrix XenDesktop會話
我們目前擁有的代碼來檢測類似於赫爾格·克萊因在「API for Determining if App is Running on Citrix or Terminal Services」中提到的解決方案思傑的XenApp會話。
令人遺憾的是,XenDesktop環境中的解決方案正在返回表示本地控制檯會話的0
的WTSClientProtocolType
。
爲了迴應同樣的問題Josh Weatherly提到檢查sessionname環境變量。
但是,在XenDesktop環境中使用echo %sessionname%
進行快速控制檯檢查會返回'控制檯'。
從「Detect citrix 「application mode」?」約翰Sibly提出瞭解決,用於檢測遠程會話(未的Citrix特別):
GetSystemMetrics(SM_REMOTESESSION)
然而返回0這也意味着它是一個局部會話。
有誰知道一種方法來檢測它是一個XenDesktop會話嗎?只要你能看到我的所有嘗試都返回,那麼這個會話就是一個本地控制檯會話。
我正在使用XenDesktop Express 5.5,使用Citrix Receiver Web插件訪問桌面。
感謝Donal的迴應。最後,我們對Citrix Desktop Service(WorkstationAgent)做了一個類似的簡單檢查,針對您的ProticaService建議。 – WillEllis