以编程方式访问 Citrix Receiver and Connection Center

Posted

技术标签:

【中文标题】以编程方式访问 Citrix Receiver and Connection Center【英文标题】:Programatically Access the Citrix Receiver and Connection Center 【发布时间】:2015-12-17 11:04:00 【问题描述】:

我想为从连接到 Citrix Farm 的瘦客户端运行的应用程序添加一些功能。

只需打开 Citrix 连接中心(通过右键单击 Citrix Receiver,然后单击连接中心来完成),打开“首选项”选项,然后再次关闭连接中心。这解决了我们遇到的一个问题,我想为我们的用户自动执行此操作。

谁能建议一种通过使用 .NET 框架来实现这一目标的方法?非常感谢任何建议。

我正在使用 Citrix 7.6 在 .NET-3.5 框架内工作

【问题讨论】:

你查看开发者论坛developer.citrixonline.com 嗨 C0dingJammer,我有,但似乎只能在服务器端做这种事情,我需要从客户端桌面运行应用程序。此外,API 似乎都面向 Citrix GoToMeeting 或 GoToTraining,我只有一系列 citrix 服务器,用户通过会话连接。我想通过应用程序让用户对他们自己的会话有一定程度的控制,这样支持就不必处理每一个查询 【参考方案1】:

我设法用以下方法解决了这个问题:

Process.Start(@"C:\Program Files (x86)\Citrix\ICA Client\concentr.exe");
IntPtr windowPtr = FindWindowByCaption(IntPtr.Zero, "Citrix Connection Center");
SetForegroundWindow(windowPtr);
SendKeys.SendWait("r");
IntPtr prefWindowPtr = FindWindowByCaption(IntPtr.Zero, "Citrix Receiver - Preferences");
SendMessage(prefWindowPtr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
SendMessage(windowPtr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);

哪个:

打开 Citrix 连接中心 (concentr.exe) 把窗口放在前面 发送 R 键(这会打开首选项) 关闭两个窗口(集中和首选项)

有关调用方法FindWindowByCaptionSetForegroundWindowSendMessage 的详细信息,请参阅pinvoke

【讨论】:

以上是关于以编程方式访问 Citrix Receiver and Connection Center的主要内容,如果未能解决你的问题,请参考以下文章

带有 Citrix Receiver 的 Citrix Simulation API SDK

苹果MAC平台Citrix Receiver无法从外网访问xenapp

Citrix-Receiver客户端的那些事

citrix receiver安装不上c错误代码2378

Citrix receiver无法启动?

Citrix仿真API SDK与Citrix Receiver