Объяснение вывода чтения Linux bash - PullRequest
0 голосов
/ 18 сентября 2010

Я хотел бы понять значения, которые я получаю из команды чтения в консоли.Являются ли эти выходы комбинациями некоторых клавиш?

F2   ^[OQ
F3   ^[OR
F4   ^[OS
ESC  ^[

Моя проблема в том, что я использую специальную 128-клавишную клавиатуру, запрограммированную для конкретного программного обеспечения.Мне нужно отправить эти «ключи» в эту программу, используя код ниже.Не смущайтесь тем, что я использую Linux для чтения с клавиатуры, а в приведенном ниже коде я использую Win.Я просто пытаюсь выяснить это сначала на моем Linux-компьютере.

import win32api, win32com.client

shell = win32com.client.Dispatch('WScript.Shell')
shell.AppActivate('Some Application Title')
shell.SendKeys('%fo')    # Alt+F, O
win32api.Sleep(100)

Спасибо, ребята

1 Ответ

1 голос
/ 18 сентября 2010

Это стандартные ANSI Escape-последовательности. «^ [» - это CSI = вводная последовательность управления (не сериал).

См. http://en.wikipedia.org/wiki/ANSI_escape_sequences или аналогичный источник в ANSI Escape Sequence.

Если вы отправляете такие последовательности чему-то, что их распознает, вы можете вызвать эффект, который они подразумевают, например, очистить экран, изменить цвет или даже действовать, как если бы была нажата клавиша F1. Тем не менее, вам действительно нужен получатель, который их обрабатывает! (как консоль linux) Простой поток File просто записывает символы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...