Вопрос Отправить в реальном времени нажатия клавиш для работы с внешним источником без установки программного обеспечения на этой машине? Возможно, USB-ключ, который регистрируется как клавиатура?


У меня есть несколько голых систем, в которых используется устаревшее программное обеспечение на скрипучих аппаратных средствах. Я хочу, чтобы иметь возможность автоматизировать множество задач, используя автоматические сценарии горячих клавиш для задач, которые в настоящее время выполняются вручную. Я действительно не хочу устанавливать какое-либо программное обеспечение на этих машинах, а в некоторых случаях не могу (поскольку они уже превышены на ресурсах или запускают сборки Linux или запускают странные разделенные версии Windows из каменного века)

Мне нужно решение, благодаря которому я могу получать нажатия клавиш на машине в режиме реального времени без устанавливая на нем любое программное обеспечение. Тем не менее, отсутствие драйверов или программного обеспечения на машине, посылающей нажатия клавиш, не представляет проблемы.

Это проблема, которую мне нужно решить. Учитывая ограничение на принимающей машине, я могу только представить, что решение может быть вдоль линий ввода с помощью чего-то вроде Bluetooth-ключа или USB-приемника, который регистрируется как клавиатура, но на самом деле получает нажатия клавиш, происходящих на другом компьютере. Если кто-нибудь знает, существует ли такая аппаратная часть, можете ли вы разместить ее ниже? Или, альтернативно, любое другое решение, которое соответствует целям.


4
2017-07-07 10:45


происхождения


Как насчет клавиатуры и приемника Bluetooth? Вы избегаете этого? Вам просто нужно установить драйвер для одного из них. - Datarecovery.com MK
Можете ли вы получить Bluetooth-клавиатуру, которая принимает внешние нажатия клавиш со второго устройства? - Some_Guy
Я отправил ответ, потому что он слишком длинный - Datarecovery.com MK
BTW, я учился в колледже во время компьютерного века (до Bluetooth), и исследователю в основном нужно было описать то, что вы описали. Он построил платформу, которая сидела на клавиатуре, и для каждой клавиши был задействован плунжер с активированным электромагнитом. Затем он отправил инструкции на его устройство с другого компьютера. Я предполагаю, что это не будет практическим решением для вас. - fixer1234
Я ценю комментарии, предлагающие мне создать ответ, но я хотел засеять решение, не тратя время на создание хорошего ответа. Я уверен, вы согласитесь, что комментарий, указывающий на то, что вы (и другие, которые могли бы пожелать написать более полный ответ) в рабочем направлении, лучше, чем ничего. Лично я мог бы подключить модуль Ethernet и стать его эхо-клиентом по сети, а не последовательным или bluetooth, как предлагают некоторые другие, но в любом случае он должен решить вашу проблему. - ssnobody


ответы:


Вы можете использовать удаленный IP-KVM для генерации нажатий клавиш на другой машине в режиме реального времени.

Просто подключите клавиатуру KVM (и, возможно, видео и мышь) к компьютеру, на который вы хотите отправить удаленные нажатия клавиш.

Затем вы подключаетесь к IP-адресу на KVM через веб-браузер или предоставленное собственное системное приложение и отправляете любые нажатия клавиш, которые вы хотите.

Один из таких продуктов Пульт дистанционного управления Tripp Lite, внешний KVM через IP-адрес а другой - Lantronix Spider KVM

Кроме того, вы можете перестроить версию DIY одной из них только с поддержкой клавиатуры (а не с поддержкой клавиатуры, видео и мыши), используя Teensy USB Dev Board подключен к WIZ712MJ Ethernet-модуль с Комплект адаптера Ethernet WIZ812

В этот момент вы можете использовать Teensy's локальные сети а также клавиатура библиотеки, чтобы написать небольшую программу, которая запускает сервер, используя Server.begin(), ждет соединения, а затем имеет бесконечный цикл while с чем-то вроде следующего содержимого для создания одностороннего сетевого эхо-сервера:

if (myclient.available()) {
    Keyboard.print(myclient.read());
}

Скорее всего, вам захочется использовать это с некоторой проверкой ошибок и тому подобное, но оно должно работать как скелет.


5
2017-07-20 03:58



Хотя это действительно похоже на хорошее решение, мое беспокойство здесь будет заключаться в том, насколько сложно будет подключиться к KVM на базе IP. Многое время, когда я занимаюсь подключением оборудования к аппаратным средствам, не имеет каких-либо возможностей в Интернете или даже сетевого подключения. Я имею в виду, есть Ethernet-порт на машине, но хорошо ли это для чего-нибудь? ... - Some_Guy
Кроме того, я думаю, что это не совсем соответствует требованию не устанавливать программное обеспечение на машине следящего устройства - Some_Guy
@Some_Guy: Аппаратные устройства KVM не требуют программного обеспечения на устройстве следящего устройства. Они отображаются как аппаратные устройства K, V и M. Если вы считаете, что клавиатура на компьютере установлена ​​как «установка программного обеспечения», то ваши требования невозможно встретить. Кроме того, как именно вы планируете отправлять нажатия клавиш на машину в реальном времени, если нет сетевого подключения? У нас еще не совсем есть трансиверы подпространства ... - qasdfdsaq
Абсолютно верно. Лидер подключается к устройству KVM через сеть, и устройство KVM появляется в виде клавиатуры (как для USB, так и для PS2 версии) для последователя. Итак, его лидер --ethernet-> kvm -USB-> follower - ssnobody
Я бы добавил, что в зависимости от устройства KVM у некоторых есть java-клиенты, а у некоторых есть интерфейсы IPMI. IPMI несколько небезопасен, но очень широко поддерживается и легко доступен для написания сценариев даже с мобильного телефона. - qasdfdsaq


Вот возможное решение, требуется некоторая сборка.

Вы можете использовать микроконтроллер для приема нажатий клавиш по сети и передачи их на компьютер, к которому он подключен. Один из возможных вариантов Arduino платформу, и это клавиатура поскольку это может быть проще, чем самим аппаратным обеспечением и библиотеками. Вам также понадобится программное обеспечение DIY для отправки нажатий клавиш, а в случае Arduino оно может быть записано в его среде IDE (упрощенная среда JAVA). Существуют другие платформы, и большинство из них можно уменьшить в производственной среде, если вы обнаружите, что это слишком большое или дорогое развертывание (поскольку вам может потребоваться более одного).


4
2017-07-16 08:28



Это хорошее предложение, но мне кажется, что USB-накопитель, вероятно, просто немного легче (смотря на это pjrc.com/teensy/td_keyboard.html), и немного дешевле. Тем не менее, мне бы очень понравилось ваше мнение, поскольку у меня нет такого большого опыта. - Some_Guy
Кроме того, как вы думаете, можно было бы отправить в реальном времени нажатия клавиш с подключенного компьютера, используя это, а не запрограммировать? - Some_Guy
@Some_Guy Похоже, что я смущенная версия Arduino, о которой я говорил, так что все должно быть хорошо. Но вам нужно будет одновременно подключаться с двух компьютеров, чтобы иметь в реальном времени нажатия клавиш, и это невозможно с помощью одного USB-порта. Полноразмерный Arduino может поддерживать готовые сетевые экраны для разделения соединений, например, отправлять нажатия клавиш по сети с вашего ноутбука и переходить на USB-порт на принимающий компьютер. - Enis P. Aginić
да, план заключался в том, чтобы получать через последовательный порт и выходить через USB для teensy - Some_Guy


Это далеко не готовое решение, но вы можете адаптировать что-то вроде Teensy USB для выполнения этой миссии. Я предвидел бы настройку Teensy USB для отображения в виде клавиатуры, а затем загрузку программы на Teensy USB, что

  • получает нажатия клавиш по последовательному соединению, подключенному к его выводам ввода / вывода и
  • посылает эти нажатия клавиш на целевую машину по USB-соединению.

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


3
2017-07-15 15:13



Если что-то легче, это кажется хорошим решением (но я надеюсь на более простой). Я раньше смотрел на сборку arduino, которая выглядела сложнее, дороже и больше, чем это, поэтому спасибо! - Some_Guy
У меня почти нет опыта использования микроконтроллеров (я много лет назад сделал очень простой проект, когда моя рука была удержана книгой все время). Скажем, я пошел с подростком (выглядит очень хорошо). Вы могли бы подключить клавиатуру непосредственно к USB-телевизору с загруженной программой или пройти через ноутбук с загруженным интерфейсом? Какие типы разъемов мне нужны? - Some_Guy
TeensyUSB - это клавиатура. Затем я подключил ноутбук к TeensyUSB, используя последовательное соединение (припаяйте DB9 к контактам ввода-вывода TeensyUSB, а затем подключите ноутбук к этому DB9). Затем используйте какое-либо программное обеспечение терминала (kermit?) На ноутбуке, чтобы ввести символы в последовательное соединение. Написание программы, которая работает на Teensy USB, которая получает серийный номер и посылает нажатия клавиш, не будет тривиальной, но это не был бы крупный инженерный проект. - Mutant Bob
Я считаю, что есть решения Bluetooth, которые отправляют / получают данные о последовательном порту. BlueSoleil - коммерческое программное обеспечение, которое, вероятно, делает это - manualslib.com/manual/534847/Ivt-Bluesoleil.html?page=49 «Последовательный порт Bluetooth (SPP) обеспечивает виртуальный последовательный порт через Bluetooth в качестве альтернативы проводному последовательному кабелю между компьютером и устройством. Любая программа, использующая стандартный последовательный порт, может без проблем использовать последовательный порт Bluetooth». bluesoleil.com/bssoftware/BSoftware.aspx  На самом деле, вы можете поговорить с ними и посмотреть, что они говорят о вашем проекте. - Datarecovery.com MK
Привет, я хотел создать еще одну награду, а также присудить ее этому вопросу, но мне кажется, что я должен удвоить свою щедрость, чтобы сделать это. Я действительно ценю этот ответ, хотя, спасибо! - Some_Guy


Было бы немного странно, что клавиатура получит вход. Думаю, я понимаю немного лучше ваш угол отправки последовательности нажатия клавиш с ноутбука. Приемник Bluetooth (USB-ключ) выполняет прием с клавиатуры Bluetooth. Так что забудьте клавиатуру, так как вместо этого у вас есть ноутбук. Там может быть Bluetooth-приемник, который является общим назначением и позволит вам парировать и получать данные на клавиатуре с какого-либо другого устройства Bluetooth. Данные клавиатуры являются частью профиля bluetooth для HID («Профиль устройства пользовательского интерфейса»), поэтому, по крайней мере, это охвачено. Но приемник, который поставляется с клавиатурой Logitech, например, может не позволить получать ничего, кроме клавиатуры Logitech. Поиск Amazon для «bluetooth data receiver usb» вызывает некоторые из них, которые могут работать как Mediastic's.

У вас уже есть способ отправить данные с ноутбука через Bluetooth? Вы спрашивали о получении, но не отправляете. Есть еще несколько интересных вопросов об этом -


0
2017-07-08 16:07



Ну, вы действительно сможете получать данные Bluetooth от устройств без Logitech, используя Bluetooth-приемник Logitech, в конце концов - forums.logitech.com/t5/Keyboards-and-Keyboard-Mice/... - Datarecovery.com MK
Вторая пуля связана с github.com/lkundrak/btkbdd/blob/master/btkbdd.pod, который, как представляется, описывает запрошенное решение, по крайней мере для Linux. Последняя пуля также кажется почти дубликатом этого вопроса. +1 - fixer1234


Прекрасно. Фактически его точная векторная атака за предметом, называемым BAD USB,

Вы можете подробно прочитать об этом в Вот,

В принципе, это о смене (перепрограммировании) USB-накопителя с устройства хранения на другое устройство HUD. Это не так просто, но если у вас есть время и навыки - да, это возможно. Конечно, нелегко.

Устройство BadUSB, возможно, даже заменило BIOS компьютера - снова на   эмуляция клавиатуры и разблокировка скрытого файла на USB-накопителе   водить машину.


-1
2017-07-15 09:21



На самом деле это не ответ. Я знаю, что можно нападать на нажатия клавиш, но я ищу устройство, которое принимает нажатия клавиш в реальном времени. - Some_Guy
Это четко не указано в вопросе. Однако я думаю, что вы с большей вероятностью воспользуетесь моим решением и сделаете USB-устройство выполнение команд на компьютере. Этими командами могут быть: 1. команда powershell для загрузки netcat на компьютер, 2. выполнение netcat для подключения к назначенному IP-адресу сервера, ожидающего подключения. 3. netcat также связывает локальную оболочку с соединением 4. Серверное соединение для подключения выполняет указанный скрипт / команды на подключенном компьютере. Это способ выполнить вашу задачу. Другие решения, скорее всего, потребуют некоторой установки, - mnmnc
Кроме того, гораздо проще сделать устройство BADUSB для загрузки сценария на компьютер и выполнить его локально, хотя по соображениям безопасности запуск сценария powershell имеет тенденцию блокироваться в системах Windows 7+, поэтому обратное связывание с оболочкой может быть несколько менее назойливым. - mnmnc
Я переписал этот вопрос (снова). Как вы думаете? - Some_Guy
Ваш комментарий не затрагивает сферу применения этого вопроса. Мне нужно выполнить нажатия клавиш на внешней машине из внешнего источника, без запуска каких-либо скриптов на этой машине. В некоторых случаях я подключаюсь к системам на базе DOS. Все дело в том, чтобы избежать необходимости разрабатывать решение для каждой отдельной платформы. Я действительно хочу что-то, что когда-то было настроено, хорошо идти на все, что имеет самые основные драйверы ввода на нем, и я могу набрать его удаленно. - Some_Guy