Я провел большую часть последних двух дней, пытаясь выяснить, как отправить Ctrl-пробел в приложение, работающее на Citrix.Мой сценарий основан на Python, и я пробовал различные решения от SendKeys до Pywin32 и SendInput (), а также решения, описанные в этих постах, среди прочих, которые я давно закрыл: Генерация событий клавиатуры в python SendInput
Проблема заключается в том, что все они, похоже, отправляют текстовые или смоделированные нажатия клавиш, которые Citrix не распознает.Мне кажется, что мне нужно эмулировать аппаратное нажатие клавиш, а не отправлять их непосредственно в приложение.Многие из решений находятся в C (или аналогичных), с которыми я не знаком.
У кого-нибудь есть решение на основе Python для этого?Или способ включить код C или VB.NET в Python?Было перечислено решение VB здесь , которое может работать или не работать, но я не уверен, как импортировать его функциональность в мой скрипт на основе Python.
Любые предложения приветствуются!
РЕДАКТИРОВАТЬ: Чтобы подчеркнуть необходимость прямого аппаратного манипулирования, а не имитируемых нажатий клавиш, я отправил в приложение Citrix следующие команды:
SendInput(Keyboard(VK_RETURN))
SendInput(Keyboard(VK_RETURN, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_CAPITAL))
SendInput(Keyboard(KEY_L))
SendInput(Keyboard(KEY_L, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_CAPITAL, KEYEVENTF_KEYUP))
SendInput(Keyboard(KEY_0))
SendInput(Keyboard(KEY_0, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_SPACE))
SendInput(Keyboard(VK_SPACE, KEYEVENTF_KEYUP))
SendInput(Keyboard(KEY_A))
SendInput(Keyboard(KEY_A, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_BACK))
SendInput(Keyboard(VK_BACK, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_CONTROL))
SendInput(Keyboard(KEY_A))
SendInput(Keyboard(KEY_A, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_CONTROL, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_LCONTROL))
SendInput(Keyboard(KEY_V))
SendInput(Keyboard(KEY_V, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_CONTROL, KEYEVENTF_KEYUP))
SendInput(Keyboard(VK_RETURN))
SendInput(Keyboard(VK_RETURN, KEYEVENTF_KEYUP))
И я получил следующий вывод в приложении: =tbd7w \ =