Detect termination of Citrix session launched by kiosk application

元气小坏坏 提交于 2019-12-01 12:20:36
Peter T. LaComb Jr.

In a C# Application you can reference WFICALib.dll (in your Citrix Ica Client folder), create an ICAClientClass object, subscribe to the and call it's Disconnect event, and call the LoadIcaFile method to launch your connection.

In your handler for the Disconnect method you would need to add code to initiate the log-off and terminate the current application.

An example implementation:

public static void Connect()
{
    // Configure the connection.
    ICAClientClass ica = new ICAClientClass();
    ica.Application = string.Empty;
    ica.InitialProgram = "#Name of Citrix application to launch";
    ica.Launch = true;
    ica.Domain = Environment.UserDomainName;
    ica.DesiredColor = ICAColorDepth.Color24Bit;
    ica.OutputMode = OutputMode.OutputModeNormal;
    ica.MaximizeWindow();
    ica.ClientAudio = true;
    ica.AudioBandwidthLimit = ICASoundQuality.SoundQualityMedium;
    ica.Compress = true;
    ica.ScreenPercent = 100;
    ica.TransportDriver = "TCP/IP";
    ica.WinstationDriver = "ICA 3.0";
    ica.SSLEnable = false;
    ica.SSLCiphers = "ALL";
    ica.SSLProxyHost = "*:443";
    ica.EncryptionLevelSession = "EncRC5-128";

    // Citrix server name or IP
    ica.Address = "x.x.x.x"; 

    // Setup handler for disconnect event.
    ica.OnDisconnect += ica_OnDisconnect;

    // Initiate the connection.
    ica.Connect();
}

private static void ica_OnDisconnect()
{
    Console.WriteLine("ica_OnDisconnect");
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!