Is library running on Citrix or Terminal Server? - Testing on existence/value of environment variable SESSIONNAME - Solution

Phil (OmnisList) phil at pgpotter.co.uk
Sat Jan 27 06:45:51 EST 2018


Hi Bruno,

I had this code lingering, not used recently:

Register DLL ('user32','GetSystemMetrics','AJ')      ;; jf - 21 aug 03 
-- detect if running under Terminal Server
Call DLL ('user32','GetSystemMetrics',4096) Returns 
lbUsingTerminalServices     ;; 4096 = SM_REMOTESESSION

May help you... or point you in a different direction...

regards
Phil Potter
Based in Chester in the UK.

On 26/01/2018 15:40, bub wrote:
> Hey all,
>
> I would love to find out if my library is running on Citrix or 
> Terminal Server.
>
> Apparently, the environment variable SESSIONNAME is only defined on 
> Citrix or Terminal Server so that would be a way to find it out, even 
> more specific
>
> Citrix client => SESSIONNAME starts with ICA
> Rdp client => SESSIONNAME starts with rdp
> Console session => SESSIONNAME starts with console
>
> Is there any DLL that can provide the value of an envirnoment variable 
> like SESSIONNAME?
>
> Ok, just did some more effort in scrolling through historic posts and 
> found similar construction to get username (which i changed now to 
> sessionname)
>
> Register DLL ('kernel32','GetEnvironmentVariableA','ICCM')
> Call DLL 
> ('kernel32','GetEnvironmentVariableA','SESSIONNAME',%%SESSIONNAME,255)
>
> So solution found, happy to share, might me be interesting for some
>
> Bruno.
>
>
>
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
>



More information about the omnisdev-en mailing list