在某些情况下,为了优化体验,会需要使用XenDesttop来交付无缝模式的应用程序,至于何为无缝(Seamless)就不细说了。
在XenDesktop中,交付Seamless Application的话,一般情况下,还是比较简单的,但是在使用HDX3D,交付需要使用DirectX或者OpenGL的3D应用程序时,可能需要做一些特殊的处理,否则,颜色显示会比较模糊,用户的体验比较差。
在使用HDX3D交付无缝应用程序的时候,可以归结为3步,相对于普通的Xendesktop无缝应用交付,多了两步。
一、非HDX3D模式交付无缝应用程序:

 

 
    
  1. 把应用程序快捷方式放到C:\Program Files\Citrix\ICAService\SeamlessInitialProgram目录下 

 

一般情况下,进行了如上操作以后,就可以发布Seamless Application了,即只有程序界面,而没有背景的windows界面
注意:如果HDX3D应用程序也这样发布,那么程序也会启动,但是会比较模糊,无法配置图像质量。

二、HDX3D的情况下需要进行一些改造:

 

 
     
  1. #This is a batch file to start the fluent appliation  
  2. #and start PicaImpersonationClient.exe to auto start the ConfigTool.exe  
  3. start /d "C:\Program Files\ANSYS Inc\v121\fluent\ntbin\ntx86\" fluent.exe -r12.1.4  
  4. start /d "C:\Program Files\Citrix\ICAService" PicaImpersonationClient.exe 

 

这里以Fluent程序的发布为例。

  1. 需要编写一个批处理文件,文件内容如上,第一条启动应用程序,第二条,启动PicaImpersonationClient.exe,完成后讲该批处理文件保存为Start-Fluent.bat。
  2. 创建Start-Fluent.lnk指向第一步中的批处理文件,并如普通程序交付一样,把该快捷方式放到SeamlessInitialProgram目录下即可
注意:到这,已经能够正常启动HDX3D发布的应用程序,同时也能通过ConfigTool来配置图像是否无损(lossless),但是注销的过程中,会发现,ConfigTool.exe进程无法关闭,也就导致了,ICA的会话无法注销,只能手动再连接中心中注销才可以。
三、修改PortICA的配置,来解决configTool.exe进程无法退出的问题
  1. 到处配置文件

     

     
          
    1. #This is a batch file  
    2. #This file will output the PortICA Default Configuration to an xml file  
    3. “C:\Program Files\Citrix\Desktop Delivery\Controller\PortICASetDefaults.exe” /o c:\original.xml 

     

  2. 导出完成后,我们会在C盘根目录看到original.xml文件,使用记事本等文本编辑工具打开
  3. 搜索<LogoffcheckSysModules></LogoffcheckSysModules>,并替换为<LogoffcheckSysModules><value>PicaImpersonationclient.exe,ConfigTool.exe</value></LogoffcheckSysModules>,修改完成以后保存,退出
  4. 导入修改后的配置

     

     
          
    1. #This is a batch file  
    2. #This file will import the PortICA Default Configuration from an xml file  
    3. “C:\Program Files\Citrix\Desktop Delivery\Controller\PortICASetDefaults.exe” /i c:\original.xml 

     

    至此,全部配置完成。

第三步,主要是用来配置PortICA协议,主要为Agent端,用来在注销的时候,检查配置中的两个进程,主要用来处理ConfigTool.exe进程,Agent会自动结束进程,从而使ICA会话能够正常的退出。

注意:如果第三步操作过程PortICA返回的XML文件为空或者里面为随机字符,乱码等,请参考另外一篇文章:

PortICASetDefaults.exe /o命令返回为空