以编程方式访问 Citrix Receiver and Connection Center
Programatically Access the Citrix Receiver and Connection Center
我想向 运行 来自连接到 Citrix Farm 的瘦客户端的应用程序添加一些功能。
所有这一切需要做的就是打开 Citrix 连接中心(通过右键单击 Citrix Receiver 然后单击连接中心来完成),打开 'preferences' 选项,然后再次关闭连接中心。这解决了我们遇到的问题,我想为我们的用户自动执行此操作。
任何人都可以建议一种通过使用 .NET 框架实现此目的的方法吗?非常感谢任何建议。
我在 Citrix 7.6 的 .NET-3.5 框架内工作
我设法通过以下方式解决了这个问题:
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)
- 把window放在前面
- 发送 R 键(这会打开首选项)
- 同时关闭 windows(集中度和偏好)
有关调用方法 FindWindowByCaption
、SetForegroundWindow
和 SendMessage
的详细信息,请参阅 pinvoke
我想向 运行 来自连接到 Citrix Farm 的瘦客户端的应用程序添加一些功能。
所有这一切需要做的就是打开 Citrix 连接中心(通过右键单击 Citrix Receiver 然后单击连接中心来完成),打开 'preferences' 选项,然后再次关闭连接中心。这解决了我们遇到的问题,我想为我们的用户自动执行此操作。
任何人都可以建议一种通过使用 .NET 框架实现此目的的方法吗?非常感谢任何建议。
我在 Citrix 7.6 的 .NET-3.5 框架内工作
我设法通过以下方式解决了这个问题:
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)
- 把window放在前面
- 发送 R 键(这会打开首选项)
- 同时关闭 windows(集中度和偏好)
有关调用方法 FindWindowByCaption
、SetForegroundWindow
和 SendMessage