1

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

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

У меня есть приложение, которое мы назовем "D". Это связано с применением Б. В частности, вы можете вызвать что-то в 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, к которому подключен пользователь, запускал наше маленькое приложение-заглушку при нажатии сочетания клавиш.

Учитывая эту ситуацию (спасибо за чтение этого далеко!) У меня два вопроса

  1. Кто - нибудь знает , если я должен быть в состоянии сделать клавиши быстрого вызова внутри ярлыков на опубликованный сеанс работе приложений Citrix? Если так, что я мог сделать? Кроме того, если бы это помогло использовать RDP вместо Citrix, меня бы тоже заинтересовало мнение там.

  2. Если вы знаете, как заставить работать # 1, то как мне будет отвечать только сервер с фокусированным окном?

  3. Если # 1 нельзя заставить работать, я мог бы заставить наш клиент изменить способ запуска B для запуска через командный файл. Затем я запускаю маленькое приложение-заглушку в фоновом режиме одновременно с запуском B. X может зарегистрировать мьютекс, чтобы избежать многократного запуска в течение одного сеанса. Но в этой ситуации мне все еще хотелось бы узнать, как Citrix (или MS RDP) может обрабатывать глобально зарегистрированные сочетания клавиш. Если пользователь нажал Ctrl+Alt+D , это приведет к переходу к различным копиям X или только к X, который принадлежит в сеансе приложения B с помощью fous?

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

0