Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过编程方式访问Citrix接收器和连接中心_C#_.net 3.5_Citrix_Receiver_Xenapp - Fatal编程技术网

C# 通过编程方式访问Citrix接收器和连接中心

C# 通过编程方式访问Citrix接收器和连接中心,c#,.net-3.5,citrix,receiver,xenapp,C#,.net 3.5,Citrix,Receiver,Xenapp,我想为一个应用程序添加一些功能,该应用程序是从连接到Citrix服务器场的瘦客户端运行的 所有这些都需要打开Citrix连接中心(右键单击Citrix接收器,然后单击连接中心),打开“首选项”选项,然后再次关闭连接中心。这解决了我们面临的一个问题,我想为我们的用户实现自动化 有谁能建议一种通过使用.NET框架来实现这一点的方法吗?任何建议都将不胜感激 我使用Citrix 7.6在.NET-3.5框架内工作,我通过以下方法解决了这个问题: Process.Start(@"C:\Program Fi

我想为一个应用程序添加一些功能,该应用程序是从连接到Citrix服务器场的瘦客户端运行的

所有这些都需要打开Citrix连接中心(右键单击Citrix接收器,然后单击连接中心),打开“首选项”选项,然后再次关闭连接中心。这解决了我们面临的一个问题,我想为我们的用户实现自动化

有谁能建议一种通过使用.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)
  • 把窗户放在前面
  • 发送R键(这将打开首选项)
  • 关闭两个窗口(concentr和preferences)

有关调用的方法的详细信息,请参见
FindWindowByCaption
setforegroundindow
SendMessage

您是否查看了开发者论坛Hi C0dingJammer,我有,但似乎只可能在服务器端执行此类操作,我需要在客户端桌面上运行应用程序。此外,API似乎都是面向Citrix GoToMeeting或GoToTraining的,我只是有一系列Citrix服务器,用户通过会话连接。我想让用户通过应用程序对自己的会话进行一定程度的控制,这样支持就不必处理每一个查询