允许通过键盘快捷键触发用户桌面上的远程 Citrix 发布应用程序会话的快捷方式

允许通过键盘快捷键触发用户桌面上的远程 Citrix 发布应用程序会话的快捷方式

我目前是一名开发人员,但这更像是一个系统管理员问题,我正在尝试与我们的客户合作解决问题。(一些名称和号码已更改 - 想法/问题仍然相同)

客户有 10 台 Citrix 服务器。可能有 50 名员工。每个员工可能运行 3 到 8 个应用程序副本,我们将其称为“B”。这是一个已发布的应用程序。应用程序 B 的实例可能全部在同一台服务器/会话上运行,也可能分布在多台服务器上(因此有多个会话)。

我有一个应用程序,我们称之为“D”。它与应用程序 B 相关联。具体来说,您可以在 D 中触发某些操作,这将抓取 B 的屏幕上的当前记录并在 D 中显示相应的数据。因此,用户在 B 中,并希望在 D 的屏幕上显示有关 B 当前记录的其他信息。

D 是一个单实例应用程序 - 它知道所有不同的 B 数据库并将它们合并。因此用户一次只能运行一个 D。

我们的大多数客户端没有多个服务器或 B 的多个实例。因此,我们的应用程序 D 只需注册一个全局热键,让用户调用 D 的单个副本中的函数来抓取 B 屏幕的单个副本。

在这个客户端上,这种方法是行不通的——我们不希望用户的桌面(它是许多已发布的 B 窗口加上可能的 Web 浏览器、电子邮件客户端等的集合)也因每个不同的 Citrix 服务器的 D 窗口而杂乱无章。

我有一个想法,为 D 编写一个小的存根应用程序,当执行时,它会抓取活动的 B 屏幕,与用户交互,然后退出。这个 D 存根(我称之为 X)可以安装在每台 Citrix 服务器上,并且不会消耗资源。但是我仍然需要一种方法来启动它。

我尝试在 Citrix 服务器上的用户配置文件中创建桌面快捷方式,但这似乎不起作用。我的想法是在桌面上放置一个 X 的快捷方式,并将该快捷方式的快捷键(对 Google/Bing 来说非常难的术语!)设置为类似Ctrl+ Alt+的内容D。不幸的是,这似乎不起作用。这种行为可能依赖于 explorer.exe,而由于正在发布应用程序,因此没有 explorer.exe。

即使它确实有效,我也需要确保它仅在“当前” Citrix 会话中激活,即用户关注的 B 实例。我不希望用户连接的每个 Citrix 服务器在按下键盘快捷键时都触发我们的小 X 存根应用程序。

鉴于这种情况(感谢您读到这里!)我有两个问题

  1. 有人知道我应该能否使已发布应用程序 Citrix 会话中的快捷方式内的快捷键起作用?如果可以,我该怎么做?此外,如果使用 RDP 代替 Citrix 有帮助,我也想听听大家的意见。

  2. 如果您知道如何使 #1 工作,那么我怎样才能让只有具有焦点窗口的服务器响应?

  3. 如果 #1 无法工作,我可以让客户端修改 B 的启动方式,通过批处理文件启动。然后,我会在启动 B 的同时在后台运行一个小的存根应用程序。X 可以注册一个互斥锁,以避免在同一会话中多次启动。但是,在这种情况下,我仍然想听听 Citrix(或 MS RDP)如何处理全局注册的键盘快捷键。如果用户点击Ctrl+ Alt+,D最终会转到 X 的各个副本,还是只转到属于 B 应用程序会话的 X?

我已尝试删除上述背景中不必要的部分。如果我表达得含糊不清,请指出。感谢您提供的任何意见。

相关内容