Powershell 在Citrix Receiver/Workspace的ICA客户端对象API中,设置OutputMode真的有效吗?

Powershell 在Citrix Receiver/Workspace的ICA客户端对象API中,设置OutputMode真的有效吗?,powershell,dll,sdk,activex,citrix,Powershell,Dll,Sdk,Activex,Citrix,我遵循 根据本文档,您可以设置OutputMode属性,其含义如下: OutputMode:客户端引擎的输出模式 有效值 0(无头) 1(正常) 2(无渲染) 3(无窗) 因此,我在代码中将值设置为3,其含义如下: OutputMode无窗口=3 客户端正常运行,但不显示在会话窗口中。维持 屏幕快照的内部位图表面。选择此模式可防止 如果客户端CPU使用被标识为 瓶颈渲染仍在屏幕外表面的背景中进行, 如果需要,可以获取会话的屏幕截图 但在行为上绝对没有区别,我仍然看到窗口处于正常模式 我已

我遵循

根据本文档,您可以设置OutputMode属性,其含义如下:

  • OutputMode:客户端引擎的输出模式
有效值

  • 0(无头)
  • 1(正常)
  • 2(无渲染)
  • 3(无窗)
因此,我在代码中将值设置为3,其含义如下:

OutputMode无窗口=3 客户端正常运行,但不显示在会话窗口中。维持 屏幕快照的内部位图表面。选择此模式可防止 如果客户端CPU使用被标识为 瓶颈渲染仍在屏幕外表面的背景中进行, 如果需要,可以获取会话的屏幕截图

但在行为上绝对没有区别,我仍然看到窗口处于正常模式

我已确保在连接之前按照以下要求进行设置:

OutputMode必须仅在加载时定义;也就是说,在建立连接之前 发射

我看到其他开发者也面临这个问题:

因此,问题:

  • 这个方法真的实现了吗
  • 如果是,需要采取什么措施才能使其发挥作用
以下是我使用的示例代码:

[system.Reflection.Assembly]::LoadFile("c:\Users\<user>\AppData\Local\Citrix\ICA Client\WfIcaLib.dll")
$icaClient = New-Object WFICALib.ICAClientClass
$icaClient.CacheICAFile = $false
$icaClient.ICAFile = $icapath
$icaClient.OutputMode = [WfIcaLib.OutputMode]::OutputModeWindowless
$icaClient.Launch = $true
$icaClient.TWIMode = $true
$icaClient.Connect()

sleep 10

$enumHandle = $icaClient.EnumerateCCMSessions()
$sessionid = $icaClient.GetEnumNameByIndex($enumHandle, 0)
$icaClient.StartMonitoringCCMSession($sessionid, $true)
#$icaClient.session.ReplayMode = $true

$icaClient.session.Keyboard.SendKeyDown(16) # shift key
$icaClient.session.Keyboard.SendKeyDown(53) # number 5 key

$screenShot = $icaClient.session.CreateFullScreenShot()
$screenShot.Save()
$icaClient.Logoff()

sleep 10

$icaClient.StopMonitoringCCMSession($sessionid)
$icaClient.CloseEnumHandle($enumHandle)
[system.Reflection.Assembly]::加载文件(“c:\Users\\AppData\Local\Citrix\ICA Client\wficlib.dll”)
$icaClient=新对象WFICALib.ICAClientClass
$icaClient.CacheICAFile=$false
$icaClient.ICAFile=$icapath
$icaClient.OutputMode=[WfIcaLib.OutputMode]::OutputMode无窗口
$icaClient.Launch=$true
$icaClient.TWIMode=$true
$icaClient.Connect()
睡眠10
$enumHandle=$icaClient.EnumerateCmSessions()
$sessionid=$icaClient.GetEnumNameByIndex($enumHandle,0)
$icaClient.StartMonitoringCCMSession($sessionid,$true)
#$icaClient.session.ReplayMode=$true
$icaClient.session.Keyboard.SendKeyDown(16)#shift键
$icaClient.session.Keyboard.SendKeyDown(53)#5号键
$screenShot=$icaClient.session.CreateFullScreenShot()
$screenShot.Save()
$icaClient.Logoff()
睡眠10
$icaClient.StopMonitoringCCMSession($sessionid)
$icaClient.CloseEnumHandle($enumHandle)
我正在使用:

  • 我尝试过的Citrix接收器/工作区版本:4.12、4.9、工作区19.11
  • Citrix店面版本:3.12.5000