Citrix Xenapp - Sendkeys

Я пытался (с ограниченными ресурсами) использовать команды VBScript и VBA для отправки функций клавиатуры на удаленный терминал Citrix. - Это, как я обнаружил, является известным ограничением, и я нашел различные статьи, которые дают альтернативный метод через C++ и сканкоды, чтобы преодолеть это ограничение.

Основная проблема в том, что у меня нет доступа к C++.

  • Есть ли решение, которое позволит это с VBScripts и / или VBA?

Я рассмотрел много вариантов, в том числе использование виртуальной клавиатуры Windows (это не сработало) и установку драйвера виртуальной клавиатуры в Windows (не в моей глубине).

Вот одна из статей, которая обсуждает коды сканирования с использованием C++:

http://www.codeproject.com/Tips/310817/SendKeys-using-ScanCodes-to-Citrix

Я в растерянности, и любой, кто может помочь, был бы супергероем... Если бы главной целью супергероев было стать богом-выродком.:)

Любая помощь приветствуется!!!

Приветствия.

****ОБНОВИТЬ****

Привет,

Я сделал немного больше копать...

... Окно клиентского терминала Citrix ICA не получает команды sendkeys VBScript, но если я вручную нажимаю alt в терминале после выполнения сценария (с 2-секундной паузой), например:

*Set objShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
objShell.SendKeys ("e")
objShell.SendKeys "(P)"*

Выше можно получить доступ к параметрам меню "Файл", "Редактировать" и т. Д. На панели инструментов в окне терминала.

Для меня это говорит о том, что проблема не является проблемой привилегий, и я думаю, что, возможно, еще есть надежда на метод sendkeys?

Если посмотреть дальше, то есть некоторая документация по настройкам ini-файлов на сайте Citrix в отношении клиентов Citrix ICA.

Одна из статей может быть найдена ниже:

http://support.citrix.com/article/CTX129166

Я поиграл, и, похоже, есть несколько ini-файлов, в которых перечислены раскладки клавиатуры, DLL-файлы, а также виртуальные клавиши?

Один из разделов ini-файла "module" содержал следующее:

[KeyboardLayout]
(User Profile)=0x00000000
(Server Default)=0xFFFFFFFF

Были и другие коды, в том числе различные языки, британский, американский-международный и др

Затем последовал список кодов DLL, например:

kbduk.dll=0x00000809

И, наконец, идентификаторы языков, например:

eng=0x00000809

Я предполагаю (надеюсь), что был бы способ изменить настройки ini, которые позволят получать sendkeys в полях терминала, а не только в меню панели инструментов.

Как и прежде, любая помощь приветствуется.... Я медленно схожу с ума по этому поводу!!!

Ура!

1 ответ

Решение

Пулевое заостренное решение

Что требуется:

На экранной клавиатуре (OSK.EXE) Windows приложение VBScript (не обязательно, но я предпочитаю как управляющий скрипт) VBA (для перемещения мыши)

  1. Установите OSK для получения команд 'hover'
  2. Установить код VBA для перемещения мыши к определенным координатам
  3. Используйте VBScript для контроля запуска определенных подпрограмм из файла VBA XLS. - Это можно настроить для работы в фоновом режиме без необходимости ручного открытия файла и т. Д.
  4. Установите терминал Citrix Xenapp в качестве активного окна, и нажатия клавиш должны отправляться!

Ура всем!

Другие вопросы по тегам