Ищу способ для ввода символов в косольную прогу.
А чо, конвейеры уже не рулят?
Ты хочешь unix way.
А что такое конвейеры?
Если перенаправление ввода-вывода, то не рулит. Делалось так
program.exe < 1.txt
Да, перенаправление. Чем оно тебе не нравится?
А чем тебя не устраивает банальный посыл мессаги в нужное окно?
Чуве, я буду ссылаться на этот тред, когда DarkGray в Programming опять начнет свою пропаганду.
Если перенаправление ввода-вывода, то не рулит.Как это "не рулит"? Можно поподробнее?
А этот файл перенаправить на stdin через "program.exe < 1.txt"?
Посмотри, вдруг оно.
А чем тебя не устраивает банальный посыл мессаги в нужное окно?Тут один я слова "через жопу" увидел?
Не ты один. Но прочитай сначала постановку задачи.
А вот про посыл мессаги в окно и
А нельзя создать виртуальный файл и в него перенаправить stdout проги, которая выдает команды?поподробнее, пжлст.
А этот файл перенаправить на stdin через "program.exe < 1.txt"?
Если под посылом мессаги в окно подразумеваются операции типа копи паста, то не действует.
С AutoIt сейчас пытаюсь разобраться.
Кажется в этом случае зарулила прога AutoIt. Поприветствуем победителя.
Как и следовало ожидать, в Windows все решилось через ж.
В случае, когда человек не знаком с понятиями "конвейер" и "перенаправление вывода", не поможет и гну-линукскс
А может не стоит так уж меня опускать. Про перенаправление я знал. А что такое конвейер применительно к этому вопросу - и впрямь не знаком. Может, раз такой умный, дашь справку или ссыль на книгу.
То есть - ты знал про значок "<" и не знаешь про значок "|"?
В МГУ пиздец много очень умных, таких, что если кто чуток глупее, то обосрать надо пополной. Иначе как подтвердить свою умность?
То есть - ты знал про значок "<" и не знаешь про значок "|"?Того, что я знаю о значке | не хватает, чтобы организовать такое перенаправление ввода/вывода. Впрочем, мое знакомство с этим значком ограничивается командами типа
type file | more
Если не влом, приведи пример, как можно это применить в моем случае.
2 - Забей, это неотделимая часть человеческого общества.
Bad Bad:
Желательно, чтобы еще и всякие типа End, PgUp, PgDn воспринимались
Glebius:Неплохо бы тебе читать внимательней. Из вышесказанного очевидно, что "консольной прогой" чуве называет досовскую прогу, которая запускается в консольном окошке, но никакого отношения к юникс вэй не имеет (как NC, например. Или MC
Как и следовало ожидать, в Windows все решилось через ж.
то есть пишешь
program1 | program2
и всё выведенное первой программой становится входными данными для второй.
Хотя если прав - такое может и не сработать.
Неплохо бы тебе читать внимательней. Из вышесказанного очевидно, что "консольной прогой" чуве называет досовскую прогу, которая запускается в консольном окошке, но никакого отношения к юникс вэй не имеет (как NC, например. Или MCИ что из этого?
Не, ничего. Небери вголову.
И что из этого?В конце концов, может быть эта програ _специально_ задумывалась так, чтобы противиться автоматизации ввода, например, она этот самый ввод не из stdin читает, а именно _с клавиатуры_.
А в виндах нажатия на PgUp, PgDown можно прочитать с stdin?
Если я не ошибаюсь - там такие "символы" кодируются двумя байтами, первый из которых - нулевой.
Что значит в Виндах? А что в Unix-е нельзя? Есть же у них код какой-то...
В Unix как раз можно.
дальше набираем:
$ cat > xxx
PgDn Insert 'a' 'b' 'c' Esc ':' 'w' 'q' Enter Enter Ctrl-'d'
видим
длина этого xxx 17 байт, видать Esc - 2 символа, а PgDn, Insert - по 4.
^[[6~^[[2~abc^[:wq
ну и потом
Он правда возмущается
$ cat xxx | vim yyy > /dev/null
Но все редактирует как просили. Молодца!
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
Ну то есть аски-символами они кодируются (именно так - 0 и специальный байт но получаются совершенно другими способами. Я в это практически уверен.
Чувак, кстати, свою проблему уже решил.
Но вообще специальная прога занимает около 15 строчек на плюсах. Типа есть мега-апишка keybd_event, которая запихивает нажатия непосредственно в драйвер клавиатуры, так что отличить их от настоящих физически невозможно.
типа надо не в драйвер клавиатуры, а в нужное окно
Я так в АДоМе колодцы пил =)
Хреново.
Зависимость от того, в каком порядке менеджеру окон вздумается переключать.
Даже если всё это фиксировано, то может неожиданно всплыть левое окно.
А зачем так париться? Неужели через СендМессидж вам кажется более кривым способом?
По поводу сендмесседжа у меня есть жуткие подозрения, что он может банально не сработать. Типа прога досовская, хуйеёзнает. А тут типа старый добрый лом, который сработает всегда, а пользоваться им не намного неудобней.
Я так в АДоМе колодцы пил =)ЛОЛ
Я как раз тем же самым страдаю.
Зато с помошью проги смог написать скрипт - за последний час - +80 маны и +20 к силе - не прикасаясь к клавиатуре аднака.
напиши скриптик для WSH.
Windows Script HostЧтоли? - Посмотрел - ниасилил.
Оставить комментарий
Lenchans
Суть: есть консольная прога, читает символы с клавиатуры. Нужно: для автоматизации действий нужно как-то закидывать в нее последовательности символов (только с клавиатуры - без мыши).Желательно, чтобы еще и всякие типа End, PgUp, PgDn воспринимались.
У кого есть программулина такая?
ЗЫ В инет просьба не отсылать