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 (для перемещения мыши)
- Установите OSK для получения команд 'hover'
- Установить код VBA для перемещения мыши к определенным координатам
- Используйте VBScript для контроля запуска определенных подпрограмм из файла VBA XLS. - Это можно настроить для работы в фоновом режиме без необходимости ручного открытия файла и т. Д.
- Установите терминал Citrix Xenapp в качестве активного окна, и нажатия клавиш должны отправляться!
Ура всем!