Tag: citrix

C#如何注销Citrix XenApp用户会话?

由于Citrix在其SDK上完全没有文档,因此我在此处记录此文档。 使用C#,如何以编程方式关闭用户会话?

在C#代码中运行PSCmdLets(Citrix XenDesktop)

我是PowerShell的新手,在C#中运行PowerShell cmd-lets。 具体来说,我正在尝试使用Citrix的XenDesktop SDK编写Web应用程序来管理我们的XenDesktop环境。 就像快速测试一样,我提到了Citrix BrokerSnapIn.dll,看起来它给了我很好的C#类。 但是,当我使用此错误消息命中.Invoke时:“无法直接调用从PSCmdlet派生的Cmdlet。” 我搜索并尝试了一堆东西,但不知道如何调用PSCmdlets。 我有点想到我必须使用字符串和运行空间/管道等来做到这一点。 谢谢高级,NB using System; using System.Management.Automation; using System.Management.Automation.Runspaces; using Citrix.Broker.Admin.SDK; namespace CitrixPowerShellSpike { class Program { static void Main(string[] args) { var c = new GetBrokerCatalogCommand {AdminAddress = “xendesktop.domain.com”}; var results = c.Invoke(); Console.WriteLine(“all done”); Console.ReadLine(); } } }

适用于Citrix的SendKeys替代方案

我最近为客户开发了一个虚拟键盘应用程序。 该程序几乎适用于所有程序,但某些命令如{ENTER}或{DEL}不适用于Citrix。 是否有解决方法或替代SendKeys ? 编辑1:我尝试了SendInput方法(Windows输入模拟器使用SendInput),DEL键和箭头键仍然无法正常工作。 然而,ENTER键有效。 编辑2:解决了它。 测试了两个不同版本的Citrix。 这个问题给了我很多帮助。 : Citrix瘦客户机使用keybd_event的扫描码参数,即使MS表示它未使用且应为0.您还需要提供物理扫描码以供Citrix客户端使用。 Citrix客户端也存在使用SendInput API生成的键盘输入的主要问题。 我修补了Windows输入模拟器中的代码: // Function used to get the scan code [DllImport(“user32.dll”)] static extern uint MapVirtualKey(uint uCode, uint uMapType); /// /// Calls the Win32 SendInput method … /// /// The VirtualKeyCode to press public static void SimulateKeyPress(VirtualKeyCode keyCode) { var down = new INPUT(); […]