Разрешение ярлыку на рабочем столе пользователя удаленного сеанса опубликованного приложения Citrix запускаться с помощью сочетания клавиш

Разрешение ярлыку на рабочем столе пользователя удаленного сеанса опубликованного приложения Citrix запускаться с помощью сочетания клавиш

В данный момент я выступаю в роли разработчика, но это скорее вопрос системного администратора, в котором я пытаюсь совместно с нашим клиентом решить проблему. (Некоторые имена и номера изменены — идея/проблема остаются прежними)

У клиента 10 серверов Citrix. Возможно, есть 50 сотрудников. Каждый сотрудник может запускать от 3 до 8 копий приложения, которое мы назовем «B». Это опубликованное приложение. Экземпляры приложения B могут работать на одном сервере/сеансе или могут быть распределены по нескольким серверам (и, следовательно, нескольким сеансам).

У меня есть приложение, которое мы назовем "D". Оно связано с приложением B. В частности, вы можете запустить что-то в D, что будет считывать текущую запись с экрана B и выводить соответствующие данные в D. Итак, пользователь находится в B и хочет вывести дополнительную информацию о текущей записи B на экран D.

D — это приложение с одним экземпляром — оно знает обо всех отдельных базах данных B и объединяет их. Таким образом, пользователь должен запускать только одну D за раз.

У большинства наших клиентов нет нескольких серверов или нескольких экземпляров B. Поэтому наше приложение D просто регистрирует глобальную горячую клавишу, чтобы позволить пользователю вызывать функцию в единственной копии D для считывания данных с единственной копии экрана B.

На этом клиенте такой подход не сработает — мы не хотим, чтобы рабочий стол пользователя, представляющий собой совокупность множества опубликованных окон B, а также, возможно, веб-браузера, почтового клиента и т. д., был также загроможден окном D для каждого отдельного сервера Citrix.

У меня была идея написать небольшое приложение-заглушку для 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 или только к тому X, который принадлежит сеансу приложения B с fous?

Я попытался вырезать ненужные части вышеприведенного фона. Пожалуйста, укажите, если я выразился двусмысленно и вы хотите получить разъяснения. Спасибо за любые и все высказанные мнения.

Связанный контент