Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Плагины и доп. ПО _ Hardware UO Pilot

Автор: Александр85 20.5.2013, 8:50

Всем привет =)
Предлагаю на рассмотрение аппаратную клавиатуру UOkeyboard - usb устройство эмулирующее нажатие клавиш клавиатуры.
Прикрепленное изображение
Изображение
UOkeyboard, это usb устройство гаджет которое работает как usd-hid клавиатура и посылает нажатия клавиш, по заданному алгоритму. UOkeyboard довольно полезная штука в ситуациях, когда нужно долго и монотонно кликать по одним и тем же кнопкам.
Теперь не требуется судорожно жать на все кнопки! Стоит просто подключить данное устройство в свободный USB разъем компьютера, и нажатие клавиш клавиатуры будет автоматическое по заданному вами алгоритму!
Одной из приятных особенностей является то, что UOkeyboard не "палится" системой защиты.
Поскольку он не требует драйвера, и определяется как обычная клавиатура. Для HID-устройств USB не нужны драйвера в операционных системах Windows, драйвер находиться уже в самой ОС.
При первом подключении, ПК автоматически распознает UOkeyboard, занимает несколько секунд.
Прикрепленное изображение
Прикрепленное изображение
Изображение
Изображение
В дальнейшем при использовании UOkeyboard, гаджет начинает сразу же работать при подключении в USB.
Возможные варианты использования UOkeyboard:
I.Отлично помогает в пвп.
II.Прокачивать персонажа.
III.Cпам сообщений в чат.
Схема UOkeyboard
Прикрепленное изображение
Изображение
Данный девайс UOkeyboard был разработан на основе МастерКидовского набора MP1505 - Клавиатурная шутка http://www.masterkit.ru/main/set.php?code_id=664382. Был перепрограммирован микроконтроллер написанной мною программой, задан алгоритм нажатия клавиш клавиатуры.
Теперь по порядку:
1. Описание схемы:
Основой данного девайса является микроконтроллер фирмы Atmel AVR - http://www.atmel.com/devices/ATTINY45.aspx, ножки которого 5 и 7 подключены через резисторы 68 Ом к USB разъему. Эти резисторы 68 Ом несут защитную функцию. Диоды D2, D3 необходимы для согласования требования стандарта USB по уровням сигналов. Светодиод D1 нужен для индикации работы устройства UOkeyboard. Для программирования микроконтроллера стоит разъем ISP. (в Мастер Китовском наборе его нет.)
2. Описание программы для прошивки UOkeyboard:
Прошивка для UOkeyboard основан на коде AVR USB и доступен на условиях лицензии GNU (Универсальная общественная лицензия). Микроконтроллер ATtiny45 не поддерживает аппаратного USB протокола, поэтому пришлось писать программный интерфейс USB. Из-за этого программа выросла в размерах. Я выкладываю исходник прошивки с комментариями.
При написании программы использовались программа http://ru.wikipedia.org/wiki/AVR_Studio — интегрированная среда разработки (IDE) для разработки 8-ми и 32-х битных AVR приложений от компании Atmel, работающая в операционных системах Windows NT/2000/XP/Vista/7. А также программный пакет http://ru.wikipedia.org/wiki/AVR_Studio — включающий в себя кросс-компилятор и инструменты разработки для микроконтроллеров серий AVR и AVR32 фирмы Atmel. Прошивка для UOkeyboard написана на язике Си для AVR микроконтроллеров.
Желающих ознакомиться с основами программирования на язике Си под AVR микроконтроллеры советую почитать http://myrobot.ru/stepbystep/pr_introduction.php.
3. Как прошить UO keydoard.
После того как готова прошивка с заданным алгоритмом работы UO keydoard нам понадобиться программатор для микроконтроллера ATtiny45. Я использую вот этот http://www.masterkit.ru/main/set.php?code_id=903045. Вы можете использовать любой другой. Думаю с прошивкой микроконтроллера проблем не будет, там все тривиально.

Теперь все готово, подключаем UO keydoard в свободны разъем USB и наслаждаемся работой =)

Эта разработка абсолютно бесплатная (Freeware), распространяется "как есть" ("As is"),
то есть вы используете ее на свой страх и риск! И я, как автор, не несу никакой ответственности
за последствия, связанные с использованием этого устройства на Вашем компьютере.

Жду ваших отзывов о данной разработке, замечаний, предложений ....

Желающих собрать схему самостоятельно, выкладываю полный список комплектации:
1. МК ATtiny45
2. макетная плата
3. USB разъем
4. 2 резистора 68 Ом (0.25 Вт)
5. 1 резистор 2.2к Ом и 1 резистор 470 Ом (0.25 Вт)
6. 2 диода DL4148 (или любой другой маломочный)
7. 1 светодиод (любой по вашему желанию)
8. Конденсатор 0.1 мкФ
9. Разъем ISP
10. Панелька под контроллер если будете брать в корпусе DIP8.

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

Выкладываю прошивку которую, я брал за основу. Исходный код прошивки распространен на условиях лицензии GNU (Code and Life=) Данная прошивка эмулирует USB-клавиатуру и генерирует нажатия на кнопки. Файл для прошивки микроконтроллера Haunted-USB.hex находиться в папке default.
http://dfiles.ru/files/jk1ooym3v
Тут прошивка, исходный код программы на Си, весь проект в AVRstudio. (архив желательно распаковать на диск С в корневик)

ПОСТ ЕЩЕ НЕ ДОПИСАН.....

Автор: Zeleax 20.5.2013, 19:14

Отличная работа!

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

Однако вопросы есть:
1) где же прошивка? smile.gif
2) поясните, как это работает? Воткнули в комп, опозналось. Что с этим делать дальше- как посылать команды для нажатия/отжатия отдельных кнопок/комбинаций кнопок? )
3) почти п.2. Как из скрипта пилота посылать команды на девайс?
4) можно ли его впоследствии перепрограммировать?
5) есть ли подходящие программаторы (за разумные деньги) не виде отдельных плат, а в виде девайса, подключаемого к USB-порту ноута? Или этот программатор так и работает?
6) можно ли каждому такому эмулятору клавиатуры присвоить свой уникальный номер и считывать его программным образом?

Автор: DarkMaster 20.5.2013, 19:52

Цитата
6) можно ли каждому такому эмулятору клавиатуры присвоить свой уникальный номер и считывать его программным образом?

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

Автор: Александр85 20.5.2013, 20:32

Цитата(Zeleax @ 20.5.2013, 20:14) *

Отличная работа!

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

Однако вопросы есть:
1) где же прошивка? smile.gif
2) поясните, как это работает? Воткнули в комп, опозналось. Что с этим делать дальше- как посылать команды для нажатия/отжатия отдельных кнопок/комбинаций кнопок? )
3) почти п.2. Как из скрипта пилота посылать команды на девайс?
4) можно ли его впоследствии перепрограммировать?
5) есть ли подходящие программаторы (за разумные деньги) не виде отдельных плат, а в виде девайса, подключаемого к USB-порту ноута? Или этот программатор так и работает?
6) можно ли каждому такому эмулятору клавиатуры присвоить свой уникальный номер и считывать его программным образом?

Большое спасибо что оценили мой труд =)
Отвечаю по порядку.
1. Прошивку, я постараюсь выложить завтра, нада ее причесать и написать комментарии для понимания обычным человеком далекого от программирования микроконтроллеров. Прошивка написанная на языке Си.
2. Работает очень просто. Запрограммировал микроконтроллер нужным алгоритмом нажатия клавиш, воткнул в USB и пошло нажатие клавиш по заданному алгоритму.
3. На данном этапе никак. Эта перспектива на будущее, интеграция Пилота и моего девайса. Совместными усилиями это реально сделать.
4. Конечно можно! Программировать можно около 100 000 раз, пока не сотрешь энергонезависимую память микроконтроллера.
5. Да это внутрисхемный программатор, он подключается к USB-порту. Можно купить любой другой за меньшую сумму, я написал которым сам пользуюсь. В дальнейшем если приложить усилия к развитию данного девайса программатор не потребуется вообще. Если выход программировать напрямую через USB разъем устройства. Для этого нада дописать программу микроконтроллера.
6. Да каждое устройство USB имеет свой уникальный номер, и данный девайс не исключение.
Можно считать, но этот вопрос больше к программистам.

Автор: Zeleax 20.5.2013, 20:43

Цитата
2. Работает очень просто. Запрограммировал микроконтроллер нужным алгоритмом нажатия клавиш, воткнул в USB и пошло нажатие клавиш по заданному алгоритму.

Я правильно понял, что сейчас для того чтобы задать новую последовательность нажатия клавиш нужно заново перепрограммировать (перепрошить программатором) устройство?

Автор: DarkMaster 20.5.2013, 20:44

да

Автор: Александр85 20.5.2013, 20:48

Цитата(Zeleax @ 20.5.2013, 21:43) *

Я правильно понял, что сейчас для того чтобы задать новую последовательность нажатия клавиш нужно заново перепрограммировать (перепрошить программатором) устройство?

Да.
Микроконтроллер программируется 1-2 секунды.

Автор: Zeleax 20.5.2013, 20:50

Цитата(Александр85 @ 20.5.2013, 20:48) *

Да.

Значит нам предстоит большая коллективная работа )

Автор: DarkMaster 20.5.2013, 20:55

Причем перспективная и интересная smile.gif

Автор: Zeleax 20.5.2013, 20:55

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

Хотя если при отправке данных на устройство шифровать их уникальным _закрытым_ ключем устройства (не поддающимся программному чтению), то может что-то и выгорит...

Автор: Александр85 20.5.2013, 20:56

Цитата(Zeleax @ 20.5.2013, 21:50) *

Значит нам предстоит большая коллективная работа )

Для интеграции данного устройства нам предстоит согласовать работу программы и железа, эта задача очень интересная в свое развитии. Ждем ваших идей и предложений rolleyes.gif

Автор: DarkMaster 20.5.2013, 20:59

Цитата
защиту от него так же реализовать будет несложно

Где-то видел интересную заметку по этому поводу. Взаимодействие через лан. Минимальное шифрование траффика и понять кому и зачем идут пакеты будет не под силу защите.

Автор: Zeleax 20.5.2013, 21:06

Цитата(Александр85 @ 20.5.2013, 20:56) *

Для интеграции данного устройства нам предстоит согласовать работу программы и железа, эта задача очень интересная в свое развитии. Ждем ваших идей и предложений rolleyes.gif

1) Что нужно для того, чтобы устройство принимало и обрабатывало входящие по USB данные?
2) Что нужно сделать, чтобы перепрограммировать мастеркитовскую "нажималку"? Выпаивать микросхему?

Автор: Александр85 20.5.2013, 21:16

Цитата(Zeleax @ 20.5.2013, 22:06) *

1) Что нужно для того, чтобы устройство принимало и обрабатывало входящие по USB данные?
2) Что нужно сделать, чтобы перепрограммировать мастеркитовскую "нажималку"? Выпаивать микросхему?

Отвечаю:
1. Для этого нужно иметь прошитый загрузчиком кода по USB - usbasploader. Это позволяет программистам загружать в микроконтроллер программу без использования программатора. Все, что Вам нужно - только макетная плата и подключение по USB к компьютеру.
2. Нет, выпаивать не нада, нужно припаять 4 проводка как показано на схеме и подключить к программатору.

из форума
-Возможна ли прошивка контроллера по USB?

-можно прошивать только по ISP и debugWire (оба способа через коннектор ISP). Через USB прошивать нельзя, так как готового загрузчика (bootloader) для чипа ATtiny нет, и архитектура этого чипа вообще загрузчик не предусматривает (нет секции бутлоадера, в отличие от чипов ATmega16 и ATmega32, например). Теоретически такой USB бутлоадер сделать все равно можно, однако программа пользователя (которая работает в памяти и будет загружена по USB) должна поддерживать его наличие.

Автор: Zeleax 20.5.2013, 21:52

К устройству можно сформулировать следующие требования: )
1) прошивка через программатор
2) умение принимать разнообразные входящие по USB сигналы (последовательности нажатий кнопок, время задержки между нажатиями и т.п.) и обрабатывать их соответствующим образом.
3) умение сохранять часть принятых данных в своем "ОЗУ", хотя бы на время подключения к компьютеру

С п.1 всё в порядке после небольшой доработки, как я понимаю.
А вот с п.2 и 3 непонятно... Получается, что обработка входящих данных пока что вообще никак не реализована в прошивке?

Автор: Александр85 20.5.2013, 22:01

Цитата(DarkMaster @ 20.5.2013, 20:52) *

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

ИД у микроконтроллера нету, а вот в прошивке МК для работы программной эмуляции USB нужно задавать два идентификатора VID и PID. Каждое устройство USB их имеет,их можно изменять.
Прикрепленное изображение
Изображение
Можно погуглить http://otvet.mail.ru/question/49875990

Автор: Александр85 20.5.2013, 22:23

Цитата(Zeleax @ 20.5.2013, 22:52) *

К устройству можно сформулировать следующие требования: )
1) прошивка через программатор
2) умение принимать разнообразные входящие по USB сигналы (последовательности нажатий кнопок, время задержки между нажатиями и т.п.) и обрабатывать их соответствующим образом.
3) умение сохранять часть принятых данных в своем "ОЗУ", хотя бы на время подключения к компьютеру

С п.1 всё в порядке после небольшой доработки, как я понимаю.
А вот с п.2 и 3 непонятно... Получается, что обработка входящих данных пока что вообще никак не реализована в прошивке?


По очереди:
1. С прошивкой через программатор проблем нету. Но желательно обойтись вообще без программатора (прошивать через bootloader).
2. На данном этапе этого нет. Но это вполне реально, нада дописывать прошивку.
3. Это тоже вполне реально сделать. Даже записывать в энергонезависимую память, если это требуется.

Автор: Александр85 21.5.2013, 8:52

Вот подобные устройства для размышлений:
1. Подключение джойстика от 8-битных приставок к ПК на МК ATtiny45 - http://diod.ucoz.ru/publ/mikrokontrollery/skhemy_na_mk/podkljuchenie_dzhojstika_ot_8_bitnykh_pristavok_k_pk_na_mk_attiny45_attiny85/4-1-0-206
2. Смотрим буржуйскую реализацию DIY USB password generator (USB генератор паролей). http://codeandlife.com/2012/03/03/diy-usb-password-generator/

Автор: DarkMaster 21.5.2013, 11:33

Цитата
10. Панелька под контроллер если будете брать в корпусе DIP8.

Можно этот момент разжевать?

Автор: Александр85 21.5.2013, 11:52

Цитата(DarkMaster @ 21.5.2013, 12:33) *

Можно этот момент разжевать?


Микроконтроллеры ATtiny45 есть как минимум в двух вариантах исполнения корпуса:
DIP и SMD. Для самостоятельной сборки лучше использовать корпус ДИП в МАСТЕР КИТовском наборе используют СМД исполнение.
Прикрепленное изображение
Изображение
DIP SMD

Автор: EL-GReeN 21.5.2013, 11:54

Каковы будут действия обычных пользователей желающих получить этот девайс, можно ли будет у вас заказывать?
И еще насколько я понял эта задумка позволит обойти все защиты, отсюда 2 замечания, реально ли замаскировать железку под стандартную клавиатуру, и маскировка самого пилота и софта к железке так что бы при каждом запуске оно по разному шифровалось, и не могло обнаружиться.

Автор: DarkMaster 21.5.2013, 12:25

Цитата
реально ли замаскировать железку под стандартную клавиатуру

Я боюсь можно ее и принтером заставить определяться)
Цитата
Каковы будут действия обычных пользователей желающих получить этот девайс, можно ли будет у вас заказывать?

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

Автор: Александр85 21.5.2013, 12:33

Цитата(EL-GReeN @ 21.5.2013, 12:54) *

Каковы будут действия обычных пользователей желающих получить этот девайс, можно ли будет у вас заказывать?
И еще насколько я понял эта задумка позволит обойти все защиты, отсюда 2 замечания, реально ли замаскировать железку под стандартную клавиатуру, и маскировка самого пилота и софта к железке так что бы при каждом запуске оно по разному шифровалось, и не могло обнаружиться.


Я собирал данный девайс для себя, и успешно им пользуюсь уже больше года.
При желании могу собрать и для вас, только цена будет дороже чем Мастер Китовский набор. Плюс цена за пересылку не всегда адекватная (живу г. Чернигов UA). Дешевле будет собрать самому, или заказать у Мастер Кита по месту (сеть магазинов по всем странам СНГ).
Данный девайс не на да маскировать! Он определяется как обыкновенная клавиатура. По сути эта железяка и есть клавиатура только без кнопок.

Цитата(DarkMaster @ 21.5.2013, 13:25) *

Я боюсь можно ее и принтером заставить определяться)

Можно без проблем biggrin.gif

Автор: DarkMaster 21.5.2013, 13:21

А что есть панелька под контроллер? Как оно выглядит?

Автор: Александр85 21.5.2013, 13:31

Цитата(DarkMaster @ 21.5.2013, 14:21) *

А что есть панелька под контроллер? Как оно выглядит?

Гугол вам в помощь http://www.google.com.ua/search?q=%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C%D0%BA%D0%B0+dip8&tbm=isch&tbo=u&source=univ&sa=X&ei=uUybUfSPJISM4ATw04D4Cw&ved=0CDQQsAQ&biw=1024&bih=667#imgrc=kHvo9TQKaVQk0M%3A%3BK2GfIEHXRXSx4M%3Bhttp%253A%252F%252Faliot.com.ua%252Fimages%252Fpanel_dip8_med.jpg%3Bhttp%253A%252F%252Faliot.com.ua%252Fradio.php%253Fitem%253D14976%2526cat%253D14974%3B350%3B350

Автор: Zeleax 21.5.2013, 13:51

Посмотрел здесь по поводу мастеркитовских наборов и устройств:
http://www.initiativa.com.ua/initiative/main/services/MasterKit/prajs_po_elektronnym_naboram_master_kit.htm
Тот программатор, который рекомендовали (MP9011) стоит почти 39$,
мастеркитовский девайс (MP1505) - 7.25$
вопрос-
1) есть ли смысл собирать девайс самому из отдельных комплектующих или проще купить мастеркитовский девайс и подпаять проводки к 4 контактам для подключения к программатору?
2) в прайслисте есть и другие программаторы подешевле. Они подходят для перепрограммирования микроконтроллера Atmel AVR - ATtiny45? В чем преимущество именно данной модели программатора?

Автор: Александр85 21.5.2013, 14:09

Цитата(Zeleax @ 21.5.2013, 14:51) *

Посмотрел здесь по поводу мастеркитовских наборов и устройств:
http://www.initiativa.com.ua/initiative/main/services/MasterKit/prajs_po_elektronnym_naboram_master_kit.htm
Тот программатор, который рекомендовали (MP9011) стоит почти 39$,
мастеркитовский девайс (MP1505) - 7.25$
вопрос-
1) есть ли смысл собирать девайс самому из отдельных комплектующих или проще купить мастеркитовский девайс и подпаять проводки к 4 контактам для подключения к программатору?
2) в прайслисте есть и другие программаторы подешевле. Они подходят для перепрограммирования микроконтроллера Atmel AVR - ATtiny45? В чем преимущество именно данной модели программатора?


Самому собрать будет дешевле, только нада приложить усилий, потрать свое время, иметь прямые руки и материальную базу: паяльник, припой, пинцет это минимум. У меня на сборку одного устройства ушло около 3 часа (хотя там всего и 10 деталек=).
Программатор можно купить аналогичный и за 10$ нада просто поискать.
Подходит любой внутрисхемный программатор поддерживающий микроконтроллер ATtiny45.
При желании можно и из Китая заказать http://www.aliexpress.com/store/product/USBasp-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-15PCS/812021_577097498.html
Я пользуюсь этим потому что у меня он уже был раньше, другими я не пользовался.

При большом желании программатор можно собрать из 5 проводов трех резисторов и LPT порта (у кого от еще есть а ПК) советут почитать http://www.myrobot.ru/stepbystep/mc_programmer.php

Автор: DarkMaster 21.5.2013, 14:13

Цитата
Гугол вам в помощь Панелька DIP8

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

Цитата
2) в прайслисте есть и другие программаторы подешевле. Они подходят для перепрограммирования микроконтроллера Atmel AVR - ATtiny45? В чем преимущество именно данной модели программатора?

Я смотрел тут http://www.danomsk.ru/component/ashop/?searchword=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80&option=com_ashop&view=search&Itemid=0
Насколько я понял 9009 - это под LPT порт. В целом присоединяюсь к вопросу. Можете ткнуть что из ссылки выше подойдет? Насколько я понимаю 9010, вроде подходит...

В чем беда дешевых программаторов? Чем лучше вами рекомендованный?

Автор: Александр85 21.5.2013, 14:29

Цитата(DarkMaster @ 21.5.2013, 15:13) *

Насколько я понял 9009 - это под LPT порт. В целом присоединяюсь к вопросу. Можете ткнуть что из ссылки выше подойдет? Насколько я понимаю 9010, вроде подходит...


Не советую брать 9009 программатор за такую цену.
Вот его схема wink.gif
Прикрепленное изображение
Думаю всем понятна разница, дешевого и дорого программатора, глянув на схему дешёвого =)

А программатор KIT BM9010 http://www.danomsk.ru/shop/1049-konstruktory-master-kit/452988-kit-bm9010-usb-vnutrishemnyy-programmator-avr-mikrokontrollero-master-kit должен подойти на 100% и цена адекватная.

Автор: Zeleax 21.5.2013, 18:56

А этот подойдет?
http://www.aliexpress.com/item/USBasp-AVR-Programmer-USB-ATMEGA8U2-ATMEGA328-ATMEGA128-UNO-New-with-shell/685611501.html
посмотрел, вроде такой же, но продают поштучно )

Автор: Александр85 21.5.2013, 19:18

Цитата(Zeleax @ 21.5.2013, 19:56) *

А этот подойдет?
http://www.aliexpress.com/item/USBasp-AVR-Programmer-USB-ATMEGA8U2-ATMEGA328-ATMEGA128-UNO-New-with-shell/685611501.html
посмотрел, вроде такой же, но продают поштучно )

Да, это тот программатор, только в корпусе. Цена норм smile.gif
Будешь заказывать с Китая и мне закажи парочку biggrin.gif
Вот тут можно заказать на двоих 5 штук http://www.aliexpress.com/store/product/USBasp-AVR-Programmer-USB-ATMEGA8U2-ATMEGA328-ATMEGA128-UNO-New-with-shell-5PCS/812021_685596787.html за 13,25$ с бесплатной доставкой. Потом мне из Киева в Чернигов перешлешь. cool.gif (тут не далеко 250км.)
Вот так мы и живем, отечественный программатор стоит 25$
из Китая 3$ dry.gif
Нада поискать Мастер Китовский набор в Китае....

Автор: Zeleax 21.5.2013, 19:41

Цитата(Александр85 @ 21.5.2013, 19:18) *

Да, это тот программатор, только в корпусе. Цена норм smile.gif
Будешь заказывать с Китая и мне закажи парочку biggrin.gif
Вот тут можно заказать на двоих 5 штук http://www.aliexpress.com/store/product/USBasp-AVR-Programmer-USB-ATMEGA8U2-ATMEGA328-ATMEGA128-UNO-New-with-shell-5PCS/812021_685596787.html за 13,25$ с бесплатной доставкой. Потом мне и Киева в Чернигов перешлешь. cool.gif (тут не далеко 250км.)
Вот так мы и живем, отечественный программатор стоит 25$
из Китая 3$ dry.gif

я просто не в курсе как на это таможня реагирует (на количество штук электроники больше 2).
С телефонами вроде проблемы были, если купить 3 штуки.
В чем проблема прямо в Чернигов заказать пару штук? Доставка-то бесплатно

Автор: Александр85 21.5.2013, 19:53

Цитата(Zeleax @ 21.5.2013, 20:41) *

я просто не в курсе как на это таможня реагирует (на количество штук электроники больше 2).
С телефонами вроде проблемы были, если купить 3 штуки.
В чем проблема прямо в Чернигов заказать пару штук? Доставка-то бесплатно

Да, я это в шутку.
Этот сайт был написан на печатной плате моего программатора, я с него не заказывал.

Автор: Zeleax 21.5.2013, 20:24

Вот еще похожие "шуткогенераторы" нашел: )
http://macetech.com/blog/?q=node/46
http://www.diecyde.com/index.php?page=hid-prank
ВОТ! http://www.obdev.at/products/vusb/easylogger.html
Тут что-то интересное наваяли:
http://www.irongeek.com/i.php?page=security/programmable-hid-usb-keystroke-dongle

Автор: Александр85 21.5.2013, 21:52

Цитата(Zeleax @ 21.5.2013, 21:24) *

Вот еще похожие "шуткогенераторы" нашел: )
http://macetech.com/blog/?q=node/46
http://www.diecyde.com/index.php?page=hid-prank
ВОТ! http://www.obdev.at/products/vusb/easylogger.html
Тут что-то интересное наваяли:
http://www.irongeek.com/i.php?page=security/programmable-hid-usb-keystroke-dongle


Все буржуйские разработки, там люди мозгами шевелят.
Не одной нашей нету разработки. Это печально sad.gif

Вот на этот девайс стоит обратить наше внимание http://macetech.com/blog/?q=node/46

Автор: uouser 22.5.2013, 3:54

девайс хороший, очень интересный, но пока навскидку хорошо палитесь по:
1) энтропии (у девайса слишком характерные стохастики)
2) кластерам (у девайса пока попросту нет генератора "мусора", а когда он будет - придется обойти false input elimination, т.к. первое, что вы сделаете - сразу улетит в false input-кластер и даже ни чуть на анализе не скажется).
это сейчас о r3 было +

и, разумеется, на любом из уровней диспетчеризации:
hidclass; kbd- / mouhid; kbd- / mouclass и т.п. (аналоги будут и в usermode, если начнете использовать таки программное управление - там еще проще, но гоняться за r3 никто не будет - зачем если есть все в r0 централизованное?) простейшим фильтром ioctl (см r0-модуль). То, что драйвера "есть уже в win" - это такой же плюс для защиты, как и плюс для разработчика девайса (а может и более того даже).

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

к слову (дабы не быть голословным), недавно по
- "2" (см. выше) забирали предупредительно в aion на 7 дней (статистики за много-много-много месяцев если верить разведчикам с одного известного чит-форума, которые попали на "апелляции").
- фильтрации (судя по структуре одного не менее известного решения, там было kbd- / mouclass, т.к. вроде не Hid, но честно - не смотрел, врать не буду) забирали на l2 (если верить сообщениям пользователей об ответах в спп о детекте).

т.е. можно поинтересоваться у "коллег" по цеху.

p.s. а если автор топа поднимет банальный логгер (или если нет шаблонов / лень, то spy++) и проделает немного операций "автоматом" и затем "руками", плюс применит немного мат. анализа (привет любителям forex - они это делают каждый день), то легко придет к выводу, что пути "1" и "2" перспективно уйдут в сторону serverside (а там логи куда разнообразнее, чем spy++). Так что - Hid-r0 / soft-r3 - роли совсем не играет, тут у вас снова пока что будет паритет (и это еще не было банов защиты за такие вещи как "чистые пилоты", которые не наглеют ну уж совсем, как некоторые - это считается лишним попросту и даже не прячется в коде за vm и прочим хламом уже как почти год). Эмуляция развивается, уходит в r0 / к аппаратуре, аналитика и детектирование идут в сторону анализа множества состояний (это уже реалия и работает) / serverside-проверкам (привет aion) и прочему.

резюме: слоган "ломается / обходится все ..." имеет и обратное действие aka "детектируется все ... ". т.е. грандиозные заявления (это в общем, не к посту топик-стартера) о принципиальной "недетектируемости" чего-л. - либо детская фантазия о розовых пони, либо просто маркетинг (если решение платное).

Автор: DarkMaster 22.5.2013, 8:16

Мысли безусловно правильные, но не совсем понятно, что вы предлагаете?
Описанный вами анализ и в нынешнем положении будет работать точно так же. Сам геймплей ведет к возможности подобного анализа. Точнее даже определение кликера, как программы для повторения однообразных действий, ведет к подобным проблемам. На данный момент подобные анализы обходятся в основном рандомными задержками, шансами, что чар что-то пропустит, сменит порядок скилов, встанет на минуту и т.д. Но как вы представляете это обходить на уровне железа? Унверсальный мусор? Это как? Да и зачем? Ну будет от девайса идти в том числе мусор, пусть даже много, а некий драйвер будет его сортировать и дешифровывать. А разницы то? Зачем защите пытаться решить эти ребусы? Тут даже не то что нуль кольцо не нужно или дрова, не нужно что-либо палить, пытаться детектировать, ведь у нас есть клиент Л2(ну или еще чего-нибудь), в который придут уже чистые обработанные нажатия. Причем тут даже не обязательно, чтобы защита что-то в клиенте анализировала, ведь ничего не мешает на стороне сервера по пакетам смотреть и анализировать поведение чара. Мусор должен идти в клиент. А в клиент мусор какой попало слать естественно не стоит. Его нужно контролировать.

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

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

Упоминание логгера заставило вспомнить одну девайсину: физический логгер клавиатуры. С одной стороны вставляется клава, с другой провод в USB порт компа. При аналогичной реализации у нас не будет вообще никакого лишнего устройства. Мы же сможем слать то, что необходимо еще прозрачнее. Насколько сложнее будет реализовать подобную схему?

Автор: Александр85 22.5.2013, 9:17

Народ, вас потянуло в высшие материи dry.gif
На данном этапе нам не стоит так углубляться .

Данный девайс , это обыкновенная USB клавиатура (только без кнопок=) реализованная на микроконтроллере ATtiny45. Которая посылает нажатия кнопок на аппаратном уровне, по зашитой в контроллер программе. Если нужны рандомные задержки, они без напряга, реализуются на аппаратном уровне в самом микроконтроллере (есть такая функция в микроконтроллере). И тогда ни одна защита не поймет кто нажимает по клавишам, человек или контроллер.

Автор: WKnight 23.5.2013, 11:37

Чето tiny45 в нашей деревне в пределах досягаемости отсутствует. Ее реально откуда-нибудь выпаять, в любом исполнении?

Автор: Zeleax 23.5.2013, 12:18

Цитата(WKnight @ 23.5.2013, 11:37) *

Чето tiny45 в нашей деревне в пределах досягаемости отсутствует. Ее реально откуда-нибудь выпаять, в любом исполнении?

В Китае вообще копейки стоит и доставка бесплатная.

Автор: Александр85 23.5.2013, 12:30

Цитата(WKnight @ 23.5.2013, 12:37) *

Чето tiny45 в нашей деревне в пределах досягаемости отсутствует. Ее реально откуда-нибудь выпаять, в любом исполнении?

Обычно контроллеры AVR применяются в промышленном оборудовании, системы управления для станков и т.п. В бытовой аппаратуре они тоже применяются, но найти сложно, именно tiny45 . Тембоие они могут быть залоченные для перепрошивки и считывания. Лучше брать новую!
А вы где проживаете?
Сейчас можно закатать доставку в любую точку мира. Лучше закажите с Китая.

Автор: WKnight 23.5.2013, 12:42

Ждать доставки лень smile.gif

Автор: Zeleax 23.5.2013, 13:29

Цитата(Александр85 @ 23.5.2013, 12:30) *

Тембоие они могут быть залоченные для перепрошивки и считывания. Лучше брать новую!

А в наборе матеркита (генератор-шутка) точно не залочена?

Автор: Александр85 23.5.2013, 13:35

Цитата(Zeleax @ 23.5.2013, 14:29) *

А в наборе матеркита (генератор-шутка) точно не залочена?

Не должна быть, но на 100% не скажу. (поскольку я не брал у них, а собирал сам)
Их прошивку ты навряд ли сольешь с контроллера, а вот свою можно залить.
Нада поискать подобный девайс у Китайцев, он должен быть у них тоже.

Автор: DarkMaster 24.5.2013, 9:06

ATtiny45-20PU
ATtiny45-20SU
Это указание на способ монтажа?

Автор: Александр85 24.5.2013, 9:18

После продолжительного поиска в интернете нашел http://microsin.ru/content/view/655/ (цена очень адекватная, схема стандартная + есть разъем для программирования)
Также буржуйская разработка http://imakeprojects.com/Projects/haunted-usb-cable/
И кто-то из наших постарался http://works.ru/2009/03/autoclicker-1-1-light.html (устройство, которое эмулирует мышь). В автокликере используется другой микроконтроллер - ATtiny2313

Цитата(DarkMaster @ 24.5.2013, 10:06) *

ATtiny45-20PU
ATtiny45-20SU
Это указание на способ монтажа?

Да, это исполнение корпуса микроконтроллера DIP и SMD.
20 - это частота работы микроконтроллера 20МГц.

Автор: Fantomas 23.6.2013, 11:20

Эх, офигеть давно за постами не следил, а тут такое))) Ну раз такое дело поделюсь тоже, не своими а готовыми проектами, которые мне помогли сделать подобие выше указанной штуковины:
как прошить? - http://electronics-lab.ru/blog/mcu/126.html; через программатор сами поищите, к сожалению ссылку по которой делал потерял, но информации много, стоит только ввести "прошивка микроконроллера"
готовое устройство (кейлогер) №1 http://www.keelog.com/ru/diy.html
готовое устройство (кейлогер) №2 http://%5burl=http://%5burl=http://radistor.ru/blog/DIY/24.html
приемлемый вариант http://stackoverflow.com/questions/12682429/generic-keyboard-emulation-using-arduino-leonardo
Вариант без программирования (на таймере) http://sekret-mastera.ru/?p=5866
готовое устройство (эмулятор мыши) №3 - http://blog.stiff.ru/2009/01/usb-mouse-hid-emulator.html
готовое устройство (кликер) №4 - http://workshop.stiff.ru/2009/03/autoclicker-1-1-light.html
дополнительная литература:
http://forum.codenet.ru/q37974/
http://citforum.ru/programming/c/dir.shtml
функции работы с клавиатурой http://radio-hobby.org/modules/instruction/page.php?id=834

Интересные проекты:
http://www.youtube.com/watch?v=NKSlkUcoOjY&list=PLDC9C21DC62018959&index=65
http://avr.ru/beginer/bascom/article12
П. С. я не в коем случае не рекламирую ничего, эта та информация и тот минимум который дает сделать устройство самому.

Автор: Александр85 25.6.2013, 9:26

Цитата(Fantomas @ 23.6.2013, 12:20) *

Эх, офигеть давно за постами не следил, а тут такое))) Ну раз такое дело поделюсь тоже, не своими а готовыми проектами, которые мне помогли сделать подобие выше указанной штуковины:
как прошить? - http://electronics-lab.ru/blog/mcu/126.html; через программатор сами поищите, к сожалению ссылку по которой делал потерял, но информации много, стоит только ввести "прошивка микроконроллера"
готовое устройство (кейлогер) №1 http://www.keelog.com/ru/diy.html
готовое устройство (кейлогер) №2 http://%5burl=http://%5burl=http://radistor.ru/blog/DIY/24.html
приемлемый вариант http://stackoverflow.com/questions/12682429/generic-keyboard-emulation-using-arduino-leonardo
Вариант без программирования (на таймере) http://sekret-mastera.ru/?p=5866
готовое устройство (эмулятор мыши) №3 - http://blog.stiff.ru/2009/01/usb-mouse-hid-emulator.html
готовое устройство (кликер) №4 - http://workshop.stiff.ru/2009/03/autoclicker-1-1-light.html
дополнительная литература:
http://forum.codenet.ru/q37974/
http://citforum.ru/programming/c/dir.shtml
функции работы с клавиатурой http://radio-hobby.org/modules/instruction/page.php?id=834

Интересные проекты:
http://www.youtube.com/watch?v=NKSlkUcoOjY&list=PLDC9C21DC62018959&index=65
http://avr.ru/beginer/bascom/article12
П. С. я не в коем случае не рекламирую ничего, эта та информация и тот минимум который дает сделать устройство самому.

Информация ценная, тут вопросов нет rolleyes.gif
Если есть желание опишите поподробнее что делали сами своими ручками. Добавите фото своего девайса и т. п...
В дальнейшем у меня есть желание объединить аппаратный пилот (эмулятор клавиатуры) и кликер (эмулятор мыши) в одном устройстве. Если есть желание можете поучаствовать в проекте. smile.gif

Автор: Auto_BOT 3.7.2013, 23:31

а не проще ли вам устройство немного переделать ?

Не программу запихивать через программатор в устройство, а просто повторять команды от UOpilot.
Команда скрипта от OUpilot посылается на устройство, пример "f4" а устройство тут же ее повторяет в систему и так далее, не нужно будет каждый раз ппзу напрягать записями, что увеличит жизнь микросхемы, да и по времени записи 2-3 сек как то много а то еще и операционку задумаете написать )))
В народ пойдет на ура, т.к. переписывать скрипты не будет надобности ) добавите в выборе окна UOpilot нечто вроде "l2super-puper_keyboard"
Извините если глупость написал в микроэлектронике не понимаю.

Автор: Александр85 4.7.2013, 12:49

Цитата(Auto_BOT @ 4.7.2013, 0:31) *

а не проще ли вам устройство немного переделать ?

Не программу запихивать через программатор в устройство, а просто повторять команды от UOpilot.
Команда скрипта от OUpilot посылается на устройство, пример "f4" а устройство тут же ее повторяет в систему и так далее, не нужно будет каждый раз ппзу напрягать записями, что увеличит жизнь микросхемы, да и по времени записи 2-3 сек как то много а то еще и операционку задумаете написать )))
В народ пойдет на ура, т.к. переписывать скрипты не будет надобности ) добавите в выборе окна UOpilot нечто вроде "l2super-puper_keyboard"
Извините если глупость написал в микроэлектронике не понимаю.

Глупость вы не написали rolleyes.gif все по сути.
В дальнейшем я и планировал интеграцию с программой UОpilot.
Просто на данный момент есть полностью готовый данный девайс Hardware UO Pilot (аппаратная клавиатура), который сам довел до рабочего состояния, которым сам пользуюсь smile.gif
А вот интегрировать программу UOpilot с данной железякой не так уж просто, тут как минимум нужны два человека Программист и Инженер.

Автор: Warstone 4.7.2013, 22:54

Этому девайсу можно 2 USB девайся впоять... Чтобы комп считал что там физически 2 устройства. Если да, то все ок. А вообще - это ничего не надо... Есть проще... Писать в клавиатурный буффер.

Автор: Александр85 5.7.2013, 8:42

Цитата(Warstone @ 4.7.2013, 23:54) *

Этому девайсу можно 2 USB девайся впоять... Чтобы комп считал что там физически 2 устройства. Если да, то все ок. А вообще - это ничего не надо... Есть проще... Писать в клавиатурный буффер.

Я конечно извиняюсь, но ход вашей мысли я не понял? unsure.gif
Если у вас есть конкретное решение, поделитесь с народом.
Подключить при желании можно хоть 3 USB.
А писать в буфер клавиатуры вы не сможете (в саму клавиатуру так точно).
Если у вас есть конкретное решение по данному вопросу, вы не стесняйтесь, описывайте все как делали.

Автор: Warstone 5.7.2013, 22:28

> Я конечно извиняюсь, но ход вашей мысли я не понял?
HID'ом дать просираться Венде, в другое - писать в рантайме "чем просраться".
> А писать в буфер клавиатуры вы не сможете (в саму клавиатуру так точно).
Вам 0-е кольцо зачем дадено? Можно, конечно. так еще в ДОСе защиту делали, когда различные ехе запускали. В буфере клавы есть 16 байт (это, типа, стандарт), а то что оно over USB пашет, так никто не отменял этого.

Автор: Александр85 5.7.2013, 22:41

Цитата(Warstone @ 5.7.2013, 23:28) *

> Я конечно извиняюсь, но ход вашей мысли я не понял?
HID'ом дать просираться Венде, в другое - писать в рантайме "чем про<вырезано анти-матом>".
> А писать в буфер клавиатуры вы не сможете (в саму клавиатуру так точно).
Вам 0-е кольцо зачем дадено? Можно, конечно. так еще в ДОСе защиту делали, когда различные ехе запускали. В буфере клавы есть 16 байт (это, типа, стандарт), а то что оно over USB пашет, так никто не отменял этого.

Многоуважаемый Warstone, мы с вами общаемся на разных языках. Вы наверное супер программист или инженер электронщик. Вы можете человеческим языком писать свои мысли????
Или хоть ссылки дайте на инфу подтверждающие как в буфер клавиатуры записать хекс код нажатия клавиши.
Не пишите заумными фразами!!! Эту тему читают разные люди, пожелтейте их уши!!! blink.gif
Если вы прибывали писать символы в буфер клавиатуры, как будто они были введены оператором, поделитесь информацией, буду благодарен.
Если это реально делать, можно будет легко обойти защиту любой игры.

Автор: Simych 23.8.2013, 13:30

Интересная очень тема, в сентябре к пойду к преподавателю по электронике у него в лаборатории есть все, что надо для сборки-соберу себе такой. Вот если б устройство моглоб слать команды в свернутое окно, то былоб вообще супер )

Автор: usb2kbd 31.8.2013, 19:29

Цитата(Warstone @ 4.7.2013, 22:54) *

Этому девайсу можно 2 USB девайся впоять... Чтобы комп считал что там физически 2 устройства.


И тут Вы совершенно правы, уважаемый! Представляю Вам проект USB2KBD (хардварный эмулятор клавиатуры). В основе - микроконтроллер ATMEL, который при подключении (через USB) представляется системе USB HID-клавиатурой и ничем не отличается от обычной. Самое интересное в нем то, что такое устройство принимает код нажатия клавиши через протокол USB->RS232 (в системе видимой как COM порт) и не нуждается в постоянной перепрошивке (отправить такой управляющий код можно через любую программу-терминал, а также почти все современные языки программирования умеют это и Ваше ПО уверен тоже). Приняв через COM-порт такой код, устройство отсылает его в систему как нажатие на клавишу реальной HID-клавиатуры.

Уверен также, что в UO Pilot можно также рандомизировать задержки нажатия-отжатия клавиш (принцип очеловечивания железа smile.gif.

таким образом для работы устройства на компьютере необходимо иметь всего 2 свободных USB-разъема (один - для подключения устройства-HID, второй - для приема управляющих сигналов).

ссылка ниже

[url=https://www.youtube.com/watch?v=kiISynEWr0c&feature=youtu.be[/url]

Устройство будет особенно актуально на RUOFF (Lineage), где фрост упрямо блочит ЭМУЛИРОВАННЫЕ нажатия клавиш и вообще везде, где стоит подобная защита. Неплохо было б, чтоб в UOPilot в настройках была возможность выбора - классическая схема отсылки нажатий или через Hardware UO Pilot в заданный COM-порт (для владельцев устройства).

Вопросы по девайсу задавайте тут или на мыло usb2kbd@gmail.com

Автор: Александр85 3.9.2013, 10:14

Проект USB2KBD заслуживает рассмотрения, продвижения и дальнейшей интеграции с UOPilot.
Единственный человек кто доработал Hardware UO Pilot.
Теперь дело за разработчиком UO Pilot WKnight, дописать опции отсылки нажатия клавиш в устройство.
Для продвижения данного устройства в массы неплохо было бы выложить схему и исходник. Может тогда и конкретные вопросы появятся по устройству.
Конечно в дальнейшем можно еще дорабатывать и данное устройство, например добавить эмуляцию HID мыши.
Все в наших руках=)

Автор: xolost 3.9.2013, 11:11

Если Кнайт что-то по этому поводу доработает, то можно будет вшивать любые скрипты как и в обычном пилоте?
Я имею ввиду не просто тупое нажатие клавиши или мышки, а полноценную работу скриптов.

Автор: Александр85 3.9.2013, 11:24

Простые нажатия клавиш будут работать 100%, а полноценные скрипты пилота могут и не работать.
WKnightу нада дописать в Пилоте команду отсылки нажатия клавиш клавиатуры в данное устройство.
Потом эти команды можно будет применять в скрипте.

Автор: xolost 3.9.2013, 11:30

Цитата(Александр85 @ 3.9.2013, 12:24) *

Простые нажатия клавиш будут работать 100%, а полноценные скрипты пилота могут и не работать.


А какой тогда в этом смысл?
Не проще механическое устройство тогда сделать? А цель будет так же достигнута. И наверняка уже много устройств есть таких механических.

Автор: Александр85 3.9.2013, 11:38

Цитата(xolost @ 3.9.2013, 12:30) *

А какой тогда в этом смысл?
Не проще механическое устройство тогда сделать? А цель будет так же достигнута. И наверняка уже много устройств есть таких механических.

Вот можешь делать механически
http://www.youtube.com/watch?v=3dKSPy4HbEk
http://www.youtube.com/watch?v=Mct1iCTuS3g
biggrin.gif

Автор: usb2kbd 3.9.2013, 12:57

Цитата(xolost @ 3.9.2013, 11:11) *

Если Кнайт что-то по этому поводу доработает, то можно будет вшивать любые скрипты как и в обычном пилоте?
Я имею ввиду не просто тупое нажатие клавиши или мышки, а полноценную работу скриптов.


Ничего никуда не нужно будет "вшивать". UOPilot будет работать как обычно - только отсылать нажатия не напрямую в компьютер (эмуляция нажатий), а устройству USB2KBD, которое, в свою очередь, уже будет отсылать системе НАСТОЯЩИЕ (неэмулированные) нажатия.
Как я и писал, UOPilot'у просто нужно дописать опцию (галочку - чекер) - "использовать отсылку нажатий в USB2KBD" например. Без этой галочки UOPilot будет работать как обычно (для игроков без наличия USB2KBD и кому это не нужно вовсе), с этой галочкой - будет слать спец команды нажатия клавиш в USB2KBD.

Делать привязку устройства к UOPilot также не вижу особого смысла, т.к. сам факт наличия USB2KBD расширит функционал самого UOPilot (как и его популярность), т.е. считаю, что это должно быть 2 независимых устройства, так сказать, кроссплатформенных. Достаточно имеющейся на сегодня от пиратства защиты самого UOPilot, лучше бросить силы на такую защиту.

По поводу работы устройства как мышь и клавиатура одновременно тут сложности, т.к. изначально при инициализации устройства мы прописываем ему флаг - "чем быть" - ТОЛЬКО мышью, ТОЛЬКО клавой, джойстиком и т.д. и тут уже, если мы хотим изменить этот флаг, необходима перепрошивка USB2KBD (что не всем доступно) или же как-то хранить флаг "вне устройства", (память Микроконтроллера, файл и т.д.), чтоб устройство при включении считывало флаг и уже от этого "становилось" клавиатурой, мышью и т.д. в общем, нужно обдумать, хотя не совсем уверен, что такое возможно.

PS - механика для каменного века )

Автор: xolost 3.9.2013, 13:05

понятно

Цитата

По поводу работы устройства как мышь и клавиатура одновременно тут сложности, т.к. изначально при инициализации устройства мы прописываем ему флаг - "чем быть" - ТОЛЬКО мышью, ТОЛЬКО клавой, джойстиком и т.д.

А если просто 2 флешки юзать? одну для клавы прописать, другую для мышки и в пилоте 2 галки. Ну что-то типа того

Автор: usb2kbd 3.9.2013, 13:18

Цитата(xolost @ 3.9.2013, 13:05) *

понятно
А если просто 2 флешки юзать? одну для клавы прописать, другую для мышки и в пилоте 2 галки. Ну что-то типа того


Мыслите верно ) 2 устройства вполне возможно. По крайней мере, это самый простой и быстрый выход. Едиственно они будут висеть на разных COM-портах (COM порт нужно будет выбирать из списка UOPilot как вариант) да и требовать 4 свободных USB порта )))

Один USb2KBD, естественно, будет прошит как клавиатура, второй как мышь, и принимать строго свои команды в строго свои COM-порты (номер COM-порта можно будет посмотреть в диспетчере устройств WINDOWS).

Автор: Александр85 3.9.2013, 14:35

Для полноценной работы пилота нужна конечно и эмуляция мыши. Делать это отдельным устройством или пытаться все впихнуть в одно, это задача на будущее....
Тут возникает другой вопрос, если взять например Руофф с его защитой, писать можно будет только элементарные скрипты. Ну типа нажатия клавиш Ф1...Ф12 с разными задержками. Это во первых не позволяет использовать всех возможностей Пилота. Во вторых интересно будет ли работать команды Пилота считывания цвета в определенных координатах например в Линейке?
Вопрос к usb2kbd? На данном этапе какой программой пользуетесь для посылки нажатий клавиш в данный девайс? На сколько быстро обрабатываются команды нажатия клавиш?

Автор: DarkMaster 3.9.2013, 16:32

Кажется все говорят о разном. Из всего сказанного хотелось бы подчеркнуть два момента:
1) в пилоте будет галка отправления клавиш на устройство. Галку бы я делать не стал, а вот новый оператор ввести можно. Это как минимум логичнее.
2) Почему будет ограниченный функционал на руоффе? Ограничен он будет только активным окном, остальное значения иметь не будет. Причем если поставить галку в клиенте л2 полноценной обработки свернутых окон, мейна сделать поверх всех окон и переключать ботов через showwindow, то боюсь функционал будет на 99% живой.

Автор: usb2kbd 3.9.2013, 19:00

Цитата(Александр85 @ 3.9.2013, 14:35) *

Для полноценной работы пилота нужна конечно и эмуляция мыши. Делать это отдельным устройством или пытаться все впихнуть в одно, это задача на будущее....
Тут возникает другой вопрос, если взять например Руофф с его защитой, писать можно будет только элементарные скрипты. Ну типа нажатия клавиш Ф1...Ф12 с разными задержками. Это во первых не позволяет использовать всех возможностей Пилота. Во вторых интересно будет ли работать команды Пилота считывания цвета в определенных координатах например в Линейке?
Вопрос к usb2kbd? На данном этапе какой программой пользуетесь для посылки нажатий клавиш в данный девайс? На сколько быстро обрабатываются команды нажатия клавиш?


Не совсем понимаю, что значит "элементарные скрипты"? Устройство может нажимать почти все клавиши клавиатуры, это же касается и мыши.

Определение цвета пикселя - это вопрос уже к UOPilot, но мой AUTOHOTKEY (им же я и шлю команды в COM порт устройству, отлично отрабатывает пиксели руоффа (правда только всего экрана, а не окна линейки, но это легко решается...)).
Клавиши отрабатываются мгновенно - т.е. со скоростью обмена данными COM порта и операционки.

Цитата(DarkMaster @ 3.9.2013, 16:32) *

Причем если поставить галку в клиенте л2 полноценной обработки свернутых окон, мейна сделать поверх всех окон и переключать ботов через showwindow, то боюсь функционал будет на 99% живой.


Переключение окон или другое взаимодействие со свернутым окном - опять же задача UOpilot. Но в случае с линейкой (а именно под нее я затачивал autohotkey) - авто ЦП и Кач работают отменно с активным окном.

Автор: Александр85 3.9.2013, 19:19

Я так поня вы с помощью AUTOHOTKEY и usb2kbd сделали полный автономный кач чара в Линейке?
или нет???

Автор: usb2kbd 3.9.2013, 19:26

Цитата(Александр85 @ 3.9.2013, 19:19) *

Я так поня вы с помощью AUTOHOTKEY и usb2kbd сделали полный автономный кач чара в Линейке?
или нет???


Ну, скажем, не совсем автономный... но есть такое )

Чару на руоффе необходимо получить бафф (ручками получаю его на час), подыскиваю локацию - чтоб поменьше было людей и естественных преград (камней, деревьев), т.к. чар может "застрять", и скрипт ждет 1 минуту и только потом командует чару "обойти преграду" - это затягивает кач...

А так схема проста - тарегт моб (его ник, прописанный в макросах), атака, ждем смерти, если смерть - подобрать дроп, и таргет след моб.

Как-то так, по-простому ) Но согласитесь, если AUTOHOTKEY такое умеет, то уже и в UOPilot уверен, возможно.

Автор: Александр85 3.9.2013, 19:33

А посылать нажатия сочетаний клавиш например Alt+F1 получаеться?

Автор: usb2kbd 3.9.2013, 19:36

Цитата(Александр85 @ 3.9.2013, 19:33) *

А посылать нажатия сочетаний клавиш например Alt+F1 получаеться?


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

Схема в Вашем случае примерно такая:

1. Нажать ALT
2. Нажать F1
3. Отпустить F1
4. Отпустить ALT

Автор: Александр85 3.9.2013, 19:39

Контроллер мега8 стоит в usb2kbd?

Автор: usb2kbd 3.9.2013, 19:40

Цитата(Александр85 @ 3.9.2013, 19:39) *

Контроллер мега8 стоит в usb2kbd?


Да.

Автор: Александр85 3.9.2013, 19:46

Идея мне нравиться, должно все получиться красиво.
Тут стоит другой вопрос, мы не видели не схемы вашего девайса ни исхадника. Вы будете вылаживать свое творение в массы???

Автор: usb2kbd 3.9.2013, 20:04

Cочетания работают. Посылал ALT+Y - отображение контактов в RUoff.

Цитата(Александр85 @ 3.9.2013, 19:46) *

Идея мне нравиться, должно все получиться красиво.
Тут стоит другой вопрос, мы не видели не схемы вашего девайса ни исхадника. Вы будете вылаживать свое творение в массы???



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

Итак.

1. Я пробую доработать девайс на момент представления "мышью"
2. Собираю готовый девайс (печатную плату).
3. Девайс отправляется разработчикам UOPilot для теста, оценки функционала, доработки UOPilot на момент интеграции с проектом USB2KBD
4. В случае успеха, хочу рассчитывать на продвижение в массы сего девайса на вашем сайте.

Роль в проекте:

Хотел бы осуществлять прием заказов на сборку-спайку, прошивку, тест девайса usb2kbd и доставку заинтересованным лицам.

Прошу администрацию проекта UOPilot отписаться о результатах возможного сотрудничества с проектом USB2KBD.

Автор: DarkMaster 4.9.2013, 11:23

Цитата

Прошу администрацию проекта UOPilot отписаться о результатах возможного сотрудничества с проектом USB2KBD.

На данный момент ситуация 1 в 1 четырехмесячной давности. На данный момент есть оторванный проект, который очень интересен для интеграции. Интеграции нет, кому ее писать не очень понятно. Точнее оно вроде как кнайт должен писать, однако с его загруженностью совсем не ясны сроки. В то же время есть возможность прикрутить длл к пилоту, функционал плагинов реализован. У меня к, к сожалению, никак не получилось со временем серьезно начать изучать материалы, как ко всему этому подходить. Даже наоборот пришлось многое свернуть из проектов. Сначала надо собирать в кучу девайс и пилот.
По поводу финансовой части. Пока нет интеграции с пилотом я не считаю правильным использование наших ресурсов для платных услуг. Так же мне кажется было бы справедливо скидывать некторый % кнайту.

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

Автор: Александр85 5.9.2013, 8:30

Обращение к Кнайту.
Как сложно дописать команду в Пилоте отсылки кода нажатой клавиши в COM порт???

Автор: DarkMaster 5.9.2013, 17:54

Для начала надо написать плагин-дллку которая будет отсылать эти нажатия в ком порт. Синтаксис и пример плагина есть в пилоте, так же обсуждалось на форуме(там всего пара небольших тем).

Автор: usb2kbd 7.9.2013, 9:48

Сечас нашел тему от наших Китайских друзей, в которой я удостоверился, что-таки возможно создание 2-х и более устройств (мышь и клавиатура) на базе ОДНОГО микроконтроллера. Кроме того, насколько я понял, вероятно, возможна отправка управляющих сигналов не через COM-порт, а через сам USB-порт (туда, куда подключается само устройство), т.е. в идеале устройство будет иметь всего один USB разъем, через него будет происходить и инициализация устройств (клавиатура+мышь) + отправка/прием управляющих сигналов.

Пока что это предположение, поэтому веду расследование и эксперименты в этой области и надеюсь на скорый апгрейд устройства usb2kbd

Автор: WKnight 7.9.2013, 12:55

Цитата
Для начала надо написать плагин-дллку которая будет отсылать эти нажатия в ком порт.

И работать будет с момента поддержки плагинов, а не только в новой версии.
Цитата
возможна оправка управляющих сигналов не через COM-порт, а через сам USB-порт, т.е. в идеале устройство будет иметь всего один USB разъем,

Виртуальный компорт не поможет?.

Автор: Cockney 7.9.2013, 17:13

а в каком виде в компорт должны отправляться коды клавиш?хекс?

Автор: usb2kbd 8.9.2013, 10:35

Цитата(WKnight @ 7.9.2013, 12:55) *

Виртуальный компорт не поможет?.


Управляющие пакеты по идее будут шуровать непосредственно в USB HID report-ах, но тогда, если это реализовать, нужен будет спец плагин-DLL через который будет осуществляться управление устойством USB2KBD. Можно, конечно, оставить управление и через USB->RS232 (то, что я использую в настоящий момент), но это а) лишний второй USB разьем б) лишние компоненты в) увеличение размера девайса

В настоящий момент пробую реализовать 2 девайса (мышь и клавиатура) одновременно на одном микроконтроллере, о результатах отпишу.

Ну и, опять же, если нарою, то метод управления девайсом через USB - будет большим шагом вперед. Тогда, возможно, рассмотрю возможность модификации устройства. (будет упразднен узел USB->RS232) + нужно будет разработать управляющий dll и работу с ним стороннему ПО.

Цитата(Cockney @ 7.9.2013, 17:13) *

а в каком виде в компорт должны отправляться коды клавиш?хекс?


Да, Hex.

Автор: Fantomas 19.9.2013, 7:48

Цитата(Александр85 @ 25.6.2013, 10:26) *

Информация ценная, тут вопросов нет rolleyes.gif
Если есть желание опишите поподробнее что делали сами своими ручками. Добавите фото своего девайса и т. п...
В дальнейшем у меня есть желание объединить аппаратный пилот (эмулятор клавиатуры) и кликер (эмулятор мыши) в одном устройстве. Если есть желание можете поучаствовать в проекте. smile.gif

Не буду я выкладывать по понятным причинам свое устройство-) tongue.gif Разве что схему (внизу).

По поводу того что дальше тут написано - вы в правильном направлении идете, вот только Uopilot при прошивке должен эмулировать полноценное исполнение скрипта, с быстрой загрузкой его в микроконтроллер без участия программатора, а не только нажатие определенных клавиш мыши или клавиатуры dry.gif Иначе в противном случае ваше устройство ничем не отличается от готового продукта Oscar и Logitech, аля мышка x7 или клавиаутры серии G (например g13). Кстати в двух последних устройствах есть опция загрузки скрипта, единственный их недостаток - ограничение функционала из-за невозможности написания полноценного скрипта как в uopilot. Клава правда предусматривает скрипты на языке Lua, но его никто не знает, да и стоимость устройства не радует-)
Да еще один нюанс, недавно был очень удивлен, когда в одной из игр(Universe online) все же обнаружили присутсвие этого девайса(за что естественно получил бан), это я к тому что при желании все можно обнаружить... .
P.S. лично я в прошивку своего устройства смог внедрить только определенный сценарий нажатий клавиш, полноценной программы с быстрым редактированием кода "на лету" и дальнейшим его исполнением у меня к сожалению не получилось, ибо знаний таких нет.


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: DarkMaster 19.9.2013, 12:09

Fantomas, смысл этого девайса не создать скриптовый движок или писать хардварные скрипты. Цель обеспечить цепочку:
1) В пилоте строка, скажем hwkey Enter
2) Пилот отсылает на девайс код клавиши, которую необходимо нажать.
3) Девайс ее нажимает.

Т.е. всем по прежнему рулит пилот от начала до конца. Просто появляется еще один вариант send'a.

Автор: usb2kbd 23.9.2013, 20:26

Цитата(Fantomas @ 19.9.2013, 7:48) *

Иначе в противном случае ваше устройство ничем не отличается от готового продукта Oscar и Logitech, аля мышка x7 или клавиаутры серии G (например g13).


Вот тут не соглашусь с Вами, уважаемый, т.к. готовый продукт Oscar и Logitech и т д. будет иметь свой уникальный Vendor ID, купленный вышеперечисленными конторами, и вычислить их, подключенными к системе, тому же Game Guard'у не составит особого труда, ну и соотв забанить/ограничить.

Кроме того, как я писал выше, оптимальная схема работы UOPilot с хардарными эмуляторами типа USB2KBD - отправлять лишь коды нажатий клавишь/координаты перемещения мыши. Вариант прошивки и исполнения кода самим девайсом (хардварной клавиатурой) - будет неоправданно долгим: прошивка минимальной программы в AtMega8 - около 1.5 - 2 секунды - это оч. большая пауза. Защитить же UO Pilot от обнаружения тем же GG - задача администрации.

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

PS - хотя, например, в линейке - функция мыши практически не задействована , полное управление возможно через клавиши, ну разве что придумать задачу типа определения значка "Вара" и автотаргет на него уже мышью - но это уже так сказать опционно )

Автор: Fantomas 30.9.2013, 3:10

to Darkmaster and usb2kbd: (: а я то думал...полноценное устройство с драйвером и возможностью прошивки через usb. А вы хотите использовать фактически этот девайс только как средство защиты от насекомых - точнее скрытия от них.

Цитата(usb2kbd @ 23.9.2013, 21:26) *

Вот тут не соглашусь с Вами, уважаемый, т.к. готовый продукт Oscar и Logitech...

Кроме того...


Это уже анатомические особенности пошли для обхода.... Я же говорил лишь про функциональность. Кстати тоже использовал AtMega...

Цитата(usb2kbd @ 23.9.2013, 21:26) *

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

Классно!
Цитата(usb2kbd @ 23.9.2013, 21:26) *

PS - хотя, например, в линейке - функция мыши практически не задействована , полное управление возможно через клавиши, ну разве что придумать задачу типа определения значка "Вара" и автотаргет на него уже мышью - но это уже так сказать опционно )

Не соглашусь что практически не задействована мышь в L2, тот же ресурекшн, принятие пати, нажатие на скил рамуна и прочая фигня требуют мышь(. А если вы качаетесь например в те же 2 окна то принятие пати и рес неизбежен.

Автор: usb2kbd 22.1.2014, 1:24

И снова здравствуйте, дорогие друзья! Долгие месяцы неспешных разработок, дали положительный результат, чем я весьма горжусь smile.gif Ны выходе получилось очень интересное USB-устройство (usb2kbd), которое (цитирую c сайта продукта) при подключении в USB-порт компьютера представляется системе Windows реальной клавиатурой+мышью и, что весьма важно, ничем не отличается от обычных USB клавиатуры и мыши, при этом устойство не требует от Вас установки никаких драйверов! А что еще более важно, устройство для работы требует единственный USB-порт!
Особенности харварного эмулятора клавиатуры и мыши Usb2kbd:
- до 3-х одновременных нажатий клавиш клавиатуры, включая все управляющие и функциональные клавиши;
- перемещение мыши в заданные координаты;
- нажатие кнопок мыши (левая, правая, средняя).
Как посылать в Usb2kbd управляющие сигналы с компьютера? Теперь это стало возможно благодаря универсальной библиотеке DLL - это файл, который можно динамически использовать в любом языке программирования. Ваша программа в простейшем случае обращается к DLL библиотеке - дает ей определенную команду, а уже Dll в свою очередь отправляет специальный пакет в устройство usb2kbd, которое незамедлительно выполняет эту команду (например, нажимает клавишу клавиатуры/мыши так, как будто ее нажали Вы руками!).

C описанием, преимуществами, схемой работы, примерами можно ознакомиться на сайте продукта usb2kbd.info.

Автор: DarkMaster 22.1.2014, 8:57

дллку где брать? к пилоту прикручивать будем? smile.gif

Автор: usb2kbd 22.1.2014, 11:33

Цитата(DarkMaster @ 22.1.2014, 8:57) *

дллку где брать? к пилоту прикручивать будем? smile.gif


Dll доступна для скачивания на сайте usb2kbd.info в разделе "Программное обеспечение".

В архиве сама Dll (для динамической подгрузки) + .lib - файл - если вдруг найдутся фанаты статической подгрузки библиотеки.

Также рекомендую ознакомиться со всеми разделами сайта - я там постарался максимально все описать.
(есть конкретные примеры использования).

Автор: DarkMaster 22.1.2014, 17:15

Можно какие-то контактные данные получить, чтобы относительно оперативно решить некоторые моменты?

Автор: usb2kbd 22.1.2014, 20:30

Цитата(DarkMaster @ 22.1.2014, 17:15) *

Можно какие-то контактные данные получить, чтобы относительно оперативно решить некоторые моменты?


Мыло указано на сайте usb2kbd.info в разделе "Контакты" - usb2kbd@gmail.com, Skype: unicorn791, можно писать сюда в личку - захожу часто. Вопросы общего характера по устройству - обсудим здесь в теме, остальные вопросы в мыло, скайп или в личку.

Автор: DarkMaster 23.1.2014, 0:25

Чиркнул в скайп. Не уверен в разумности диалога на форуме по поводу прикручивания дллки. Это не продуктивно smile.gif

Автор: usb2kbd 25.1.2014, 1:12

Цитата(DarkMaster @ 23.1.2014, 1:25) *

Чиркнул в скайп. Не уверен в разумности диалога на форуме по поводу прикручивания дллки. Это не продуктивно smile.gif


Прошу прощения за задержку, но курил методу прикручивания плагина к UO pilot и решая нетривиальную задачу преобразования строкового ParamStruct->ParamString в нужные мне переменные - аргументы функции smile.gif))) . Но все же, Вот результаты:

1. Скачиваем Пилот с офф сайта, закидываем mydll.dll в папку uopilot\Plugins\.

2 Запускаем пилот - он напишет что одна функция найдена ( Plugin loaded: mydll. 1 functions found) - это наша функция Sum.

3. Пишем скрипт

repeat 10
set #a mydll.Send (1,12,0,0,vid_16c0&pid_05df,usb2kbd.info usb2kbd)
set #a mydll.Send (2,12,0,0,vid_16c0&pid_05df,usb2kbd.info usb2kbd)
end_repeat
end_script

где, mydll.Send - вызываемая функция из Dll, (1,12,0,0,vid_16c0&pid_05df,usb2kbd.info usb2kbd) - аргументы (параметры), передаваемые функции Send. В данном примере скрипт скомандует - "нажать клавишу i", "отпустить клавишу i".

Функция кстати на всяк случай возвращает значения - результат выполнения (в примере $a):

"Arguments < 6! Usage Send (a1, a2, a3, a4, a5, a6)!" - если передано менее 6 аргументов. Обязательный разделитель - запятая.

Автор: DarkMaster 25.1.2014, 1:25

Мдя. А я как раз хотел этот момент обговорить и либо что-то путное вам дать из моих набросков дллок пилотовских или самому шаманить. Без меня справились. Время у меня уже только к утру появляется(
Одна небольшая просьба. Давайте не будем заниматься извращениями и sum переименуем в какую-нибудь удобоваримую вещь. Ну хоть в send что ли. По-пилотовски как-то.

И еще один главный момент. Железку то где брать? На сайте не нашел ни схемы ни продажи.

Автор: DarkMaster 25.1.2014, 1:38

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

Цитата
если передано менее 4 аргументов (больше можно можно, меньше - ни ни

лучше сразу привести в норм вид, т.к. очень часто придется дописывать нули.

Цитата
"Arguments < 4! Usage Sum (a1, a2, a3, a4)!"
"Send!"
"Not connected!"

Было бы правильнее использовать числовые коды. С ними проще работать в самих скриптах. Вместо:
if $a = "send!"
гораздо правильнее было бы использовать
if #a > 0
Цитата
отжать все клавиши мыши

по отдельности не отжимаются? Или цель была уложиться в байт?

еще пара заметок
1) На сайте нет раздела загрузки, а в описаниях ссылки практически не заметны.
2) Скачал сканкоды, ворд не открыл слету. Проще найти, чем пытаться понять, что не так с файлом. Тхт не достаточно? wink.gif
3) Неплохо было бы сделать map в dll'ке из соответствия кодов клавиш и их названий.
4) Расширенные коды клавиш не поддерживаются?

// Ну и sum... выглядит очень палевно... Ну очень)

Автор: usb2kbd 25.1.2014, 12:10

Цитата

sum переименуем в какую-нибудь удобоваримую вещь. Ну хоть в send

Готово. Теперь Send ()

Цитата(DarkMaster @ 25.1.2014, 2:38) *

лучше сразу привести в норм вид, т.к. очень часто придется дописывать нули.

Готово, теперь можно передавать любое кол-во аргументов. Если какой-то аргумент не задан - ему присваивается 0, если же ни одного аргумента не задано - все будут нулями и функция вернет 2.
Цитата(DarkMaster @ 25.1.2014, 2:38) *

Было бы правильнее использовать числовые коды. С ними проще работать в самих скриптах. Вместо:
if $a = "send!"
гораздо правильнее было бы использовать
if #a > 0

Готово. Функция возвращает - 0, 1 и 2. (0 - не подключено, 1 - подключено, 2 - не задано ни одного аргумента функции).
Цитата(DarkMaster @ 25.1.2014, 2:38) *

по отдельности не отжимаются? Или цель была уложиться в байт?

Отжимаются все, а вот нажимать можно в любой последовательности.

Цитата(DarkMaster @ 25.1.2014, 2:38) *

1) На сайте нет раздела загрузки, а в описаниях ссылки практически не заметны.
2) Скачал сканкоды, ворд не открыл слету. Проще найти, чем пытаться понять, что не так с файлом. Тхт не достаточно? wink.gif
3) Неплохо было бы сделать map в dll'ке из соответствия кодов клавиш и их названий.
4) Расширенные коды клавиш не поддерживаются?

// Ну и sum... выглядит очень палевно... Ну очень)


Раздел загрузки создал, архив со сканами обновил - теперь xls и txt, по поводу map'a клавиш - приму для работы таблицу на usb2kbd@gmail.com со штатными клавишами Uopilot'a - рассмотрю.

Расширенные коды клавиш - это какие?

Dll для uopilot доступна usb2kbd.info/uploads/files/uopilot.rar]http://usb2kbd.info/uploads/files/uopilot.rar


Зы: Кстати, как ни странно, название функции Sum создавалось именно чтоб не палиться smile.gif


Принимаю добровольные пожертвования на развитие проекта в размере 1200 рублей (300 грн).

Z425120780187
R305005172556
U263703834456

В назначении платежа нужно указать кол-во девайсов, которые бы Вы хотели иметь, Ваши ФИО полностью, № Вашего моб телефона, а также город и номер (или адрес) отделения «Новой Почты», где Вы находитесь.

Как-то так. Спрашивайте )

Автор: DarkMaster 25.1.2014, 17:44

Цитата
Функция возвращает - 0, 1 и 2. (0 - не подключено, 1 - подключено, 2 - не задано ни одного аргумента функции).

А успех то что вернет? Вообще обычно успех true, т.е. 1 либо >1, ошибка 0, учитывая, что ошибки две, я бы уводил в минус их по аналогии с find'ами.
Цитата
Расширенные коды клавиш - это какие?

Это медиа хрень всякая. Обычно они бесполезны, но имея данный девайс можно было бы биндить действия в игре на фэйковые клавиши и тем самым не забивать игровую раскладку.
http://sharpkeys.codeplex.com/#
глянь прожку. Речь идет кнопках E0_КОД.
Тут еще одна интересная статейка в эту же тему, правда там рассматриваются посылы сочетаний клавиш и походу без предварительного зажатия альта, так же туда попали почему-то клавиши типа pg_down. http://kit.znu.edu.ua/iLec/1sem/ARCH1/Lab/Lab8/jourdain/keyboard.htm
Еще такой вопрос у меня есть немного не по теме, но все же. У меня на клавиатуре некоторые клавиши работают только на ps/2, а вот уже на usb чтобы заработали надо дрова держать загруженными в памяти. WTF? Это кстати кусок расширенных.
Цитата
о поводу map'a клавиш - приму для работы таблицу на usb2kbd@gmail.com со штатными клавишами Uopilot'a - рассмотрю.

Штатные или не штатные пилота - оно не имеет значения. Смысл фактически иметь возможность писать саму клавишу а не ее код. Самый тупой вариант, как это можно сделать - запихать таблицу скан кодов из xls в map и успокоиться на этом. Эксель кстати очень удобен для создания map'ов - вся типовая писанина заменяется растягиванием. Мапом не нужно только полностью заменять возможность числовой посылки кода. Пилот сейчас на этом спотыкается сильно. Простой вариант - он всегда удобнее, надо что-то хардкорное, тогда идем за кодами.
Цитата

Принимаю добровольные пожертвования на развитие проекта в размере 1200 рублей (300 грн).

Это фиксированный размер в не зависимости от количества или как или что?
Я просто не совсем готов за одну штуку отвалить 1200...

Автор: usb2kbd 25.1.2014, 19:28

Цитата(DarkMaster @ 25.1.2014, 18:44) *

А успех то что вернет?


0 - устройство не подключено и соотв пакет никуда не пошел, 1 - девайс подключен и, значит, пакет успешно ушел в девайс, а вот девайс, к сожалению ответить в функцию никак не может, по крайней мере, я такой технологией не владею. Он будет "занят" ответом в хост нажатиями. Поэтому предполагается, если девайс подключен и виден в системе, значит он отработает пакет. Просто нужно учесть минимальные рандомные "человеческие" паузы м.д нажатиями, а не отсылать 100500 нажатий сразу smile.gif

Цитата(DarkMaster @ 25.1.2014, 18:44) *

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

Из списка кодов клавиш -

127 Keyboard Mute
128 Keyboard Volume Up
129 Keyboard Volume Down

и.т д.
- ,возможно, это.

На практике - я обычно решаю этот вопрос через сторонее ПО (например тот же Autohotkey, у него есть встроенный механизм ремаппа любой клавиши и на что ее заменять. Причем "на что заменить" может быть скриптом.
Пример:

a::
hFile := DllCall("mydll\Sum", int, 1, int, 11, int, 0, int, 0)
Sleep, 40
hFile := DllCall("mydll\Sum", int, 2, int, 11, int, 0, int, 0)
return

Нажимаешь a - печатается h.


Цитата(DarkMaster @ 25.1.2014, 18:44) *


Еще такой вопрос у меня есть немного не по теме, но все же. У меня на клавиатуре некоторые клавиши работают только на ps/2, а вот уже на usb чтобы заработали надо дрова держать загруженными в памяти. WTF?

С таким не сталкивался, но опять же ремапп программный на удобноваримую для usb2kbd всегда рулит. Главное чтоб внешняя програ-ремаппер отлавливала эти "некоторые" клавиши.

Цитата(DarkMaster @ 25.1.2014, 18:44) *

Штатные или не штатные пилота - оно не имеет значения. Смысл фактически иметь возможность писать саму клавишу а не ее код. Самый тупой вариант, как это можно сделать - запихать таблицу скан кодов из xls в map и успокоиться на этом. Эксель кстати очень удобен для создания map'ов - вся типовая писанина заменяется растягиванием. Мапом не нужно только полностью заменять возможность числовой посылки кода. Пилот сейчас на этом спотыкается сильно. Простой вариант - он всегда удобнее, надо что-то хардкорное, тогда идем за кодами.

Если честно, я как бы с с++ знаком менее 2 месяцев, и то изучил только основы для создания DLL и ПО, я ранее чуть программировал в VB, а сейчас мучаю PHP на уровне новичка... smile.gif Сейчас я рассматриваю вариант выкладывания сорсов Dll-ки на Borland C++ Builder (в т.ч. доработанной для UOpilot), чтоб Вы его могли править как хотите и адаптировали его с учетом требований и пожеланий форумчан для нужд UOPilot (с условием неизменности моего кода), т.к. уверен, у Вас это выйдет лучше меня и, однозначно, оптимальнее.

Цитата(DarkMaster @ 25.1.2014, 18:44) *

Это фиксированный размер в не зависимости от количества или как или что?
Я просто не совсем готов за одну штуку отвалить 1200...


Торг всегда уместен... Скажем, так - Специальные "пилотные" условия для администрации портала UOPilot - Заинтересованное лицо "помогает" проекту на развитие в размере 200грн/800р. (себестоимость + время на сборку/пайку + премирование идейности) и получает по "Новой Почте"+пересылка за счет получателя (Украина) или Укрпочтой (Россия) "материал" по проекту в размере 1шт. Я думаю, это в первую очередь, касается администрации портала, так сказать, "пощупать", "потестить на деле".

По сути дела это та же стоимость средней мыши + клавы в магазине (не самые навороченные, типа монстров Logitech, о которых как-то кто-то упоминал выше).

Дешевле уже некуда, бо смысла нет тратить на все это силы и разум. Все, так сказать, ХендМейд, паяльник и мозги. smile.gif

PS:
Кстати, приведу тут ответ одного мастера из РФ, тогда я только вынашивал идею usb2kbd (ответ от апреля 2013 года) - он продавал похожий девайс, только (!) обмен данными был через Com-порт, и его устройство могло представляться только ЛИБО клавой ЛИБО только мышью в зависимости от Firmware.

Цитата:

> Добрый день!
>
> А сколько будет стоить девайс в фул сборке (в RUR)
>
1шт - 2000
> =4шт - 1500

Конец цитаты.

Второй случай, помните, я писал по поводу того, что одному Китайцу удалось соединить два девайса в одном и передавать данные в устройство по USB, т.е. по сути то, что умеет на сегодня USB2kbd? Так вот он на e-bay'e задвигал девайс (с исходниками правда) за 70 енотов ), ну и там до 50 енотов если больше 1 берешь.

Как-то так.

Автор: DarkMaster 25.1.2014, 20:12

Цитата
С таким не сталкивался, но опять же ремапп программный на удобноваримую для usb2kbd всегда рулит. Главное чтоб внешняя програ-ремаппер отлавливала эти "некоторые" клавиши.

Полная тишина. Система в принципе не понимает, что что-то нажимали. Ни логгеры не определители скан кодов. Проблема очень старая, кстати как раз тогда еще ахк использовал. Он тоже не видел.
Цитата
127 Keyboard Mute
128 Keyboard Volume Up
129 Keyboard Volume Down

и.т д.

Типа "Application:calculator"
Цитата
По сути дела это та же стоимость средней мыши + клавы в магазине (не самые навороченные, типа монстров Logitech, о которых как-то кто-то упоминал выше).

Мертвая ценовая категория для меня. Либо дешевенькую чтобы бегала либо топ. Правда последний топ уже 10 лет бегает и дохнуть не хочет...
Цитата
200грн/800р. (себестоимость + время на сборку/пайку + премирование идейности) и получает по "Новой Почте" (Украина) или Укрпочтой (Россия) "материал" по проекту в размере 1шт. Я думаю, это в первую очередь, касается администрации портала, так сказать, "пощупать", "потестить на деле".

Эхх а когда-то о 300р речь шла. Ну тут деваться особо не куда. По количеству надо только сориентироваться. 2-4 штуки будет.
Цитата
Если честно, я как бы с++ знаком менее 2 месяцев

Да не больше. Только меня еще и оторвали от ++ обстоятельства. А я еще и на визуал студии. Борладовские проекты открывать она не захотела.
Пример мапа для curl, который я делал дллки пилотовской. Там кстати только парсинг осталось дописать да руки никак не дойдут.
map
//главная функция
//необходимые CURL объекты
CURL *curl;
CURLcode result;
map <string, CURLoption> str_to_CURLopt = {
{ "_FILE", CURLOPT_FILE },
{ "_URL", CURLOPT_URL },
{ "_PORT", CURLOPT_PORT },
{ "_PROXY", CURLOPT_PROXY },
{ "_USERPWD", CURLOPT_USERPWD },
{ "_PROXYUSERPWD", CURLOPT_PROXYUSERPWD },
{ "_RANGE", CURLOPT_RANGE },
{ "_INFILE", CURLOPT_INFILE },
// { "_ERRORBUFFER", CURLOPT_ERRORBUFFER },
// { "_WRITEFUNCTION", CURLOPT_WRITEFUNCTION },
{ "_READFUNCTION", CURLOPT_READFUNCTION },
{ "_TIMEOUT", CURLOPT_TIMEOUT },
{ "_INFILESIZE", CURLOPT_INFILESIZE },
{ "_POSTFIELDS", CURLOPT_POSTFIELDS },
{ "_REFERER", CURLOPT_REFERER },
{ "_FTPPORT", CURLOPT_FTPPORT },
{ "_USERAGENT", CURLOPT_USERAGENT },
{ "_LOW_SPEED_LIMIT", CURLOPT_LOW_SPEED_LIMIT },
{ "_LOW_SPEED_TIME", CURLOPT_LOW_SPEED_TIME },
{ "_RESUME_FROM", CURLOPT_RESUME_FROM },
{ "_COOKIE", CURLOPT_COOKIE },
{ "_HTTPHEADER", CURLOPT_HTTPHEADER },
{ "_HTTPPOST", CURLOPT_HTTPPOST },
{ "_SSLCERT", CURLOPT_SSLCERT },
{ "_KEYPASSWD", CURLOPT_KEYPASSWD },
{ "_CRLF", CURLOPT_CRLF },
{ "_QUOTE", CURLOPT_QUOTE },
{ "_WRITEHEADER", CURLOPT_WRITEHEADER },
{ "_COOKIEFILE", CURLOPT_COOKIEFILE },
{ "_SSLVERSION", CURLOPT_SSLVERSION },
{ "_TIMECONDITION", CURLOPT_TIMECONDITION },
{ "_TIMEVALUE", CURLOPT_TIMEVALUE },
{ "_CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST },
{ "_STDERR", CURLOPT_STDERR },
{ "_POSTQUOTE", CURLOPT_POSTQUOTE },
{ "_WRITEINFO", CURLOPT_WRITEINFO },
{ "_VERBOSE", CURLOPT_VERBOSE },
{ "_HEADER", CURLOPT_HEADER },
{ "_NOPROGRESS", CURLOPT_NOPROGRESS },
{ "_NOBODY", CURLOPT_NOBODY },
{ "_FAILONERROR", CURLOPT_FAILONERROR },
{ "_UPLOAD", CURLOPT_UPLOAD },
{ "_POST", CURLOPT_POST },
{ "_DIRLISTONLY", CURLOPT_DIRLISTONLY },
{ "_APPEND", CURLOPT_APPEND },
{ "_NETRC", CURLOPT_NETRC },
{ "_FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION },
{ "_TRANSFERTEXT", CURLOPT_TRANSFERTEXT },
{ "_PUT", CURLOPT_PUT },
{ "_PROGRESSFUNCTION", CURLOPT_PROGRESSFUNCTION },
{ "_PROGRESSDATA", CURLOPT_PROGRESSDATA },
{ "_AUTOREFERER", CURLOPT_AUTOREFERER },
{ "_PROXYPORT", CURLOPT_PROXYPORT },
{ "_POSTFIELDSIZE", CURLOPT_POSTFIELDSIZE },
{ "_HTTPPROXYTUNNEL", CURLOPT_HTTPPROXYTUNNEL },
// { "_INTERFACE", CURLOPT_INTERFACE },
{ "_KRBLEVEL", CURLOPT_KRBLEVEL },
{ "_SSL_VERIFYPEER", CURLOPT_SSL_VERIFYPEER },
{ "_CAINFO", CURLOPT_CAINFO },
{ "_MAXREDIRS", CURLOPT_MAXREDIRS },
{ "_FILETIME", CURLOPT_FILETIME },
{ "_TELNETOPTIONS", CURLOPT_TELNETOPTIONS },
{ "_MAXCONNECTS", CURLOPT_MAXCONNECTS },
{ "_CLOSEPOLICY", CURLOPT_CLOSEPOLICY },
{ "_FRESH_CONNECT", CURLOPT_FRESH_CONNECT },
{ "_FORBID_REUSE", CURLOPT_FORBID_REUSE },
{ "_RANDOM_FILE", CURLOPT_RANDOM_FILE },
{ "_EGDSOCKET", CURLOPT_EGDSOCKET },
{ "_CONNECTTIMEOUT", CURLOPT_CONNECTTIMEOUT },
{ "_HEADERFUNCTION", CURLOPT_HEADERFUNCTION },
{ "_HTTPGET", CURLOPT_HTTPGET },
{ "_SSL_VERIFYHOST", CURLOPT_SSL_VERIFYHOST },
{ "_COOKIEJAR", CURLOPT_COOKIEJAR },
{ "_SSL_CIPHER_LIST", CURLOPT_SSL_CIPHER_LIST },
{ "_HTTP_VERSION", CURLOPT_HTTP_VERSION },
{ "_FTP_USE_EPSV", CURLOPT_FTP_USE_EPSV },
{ "_SSLCERTTYPE", CURLOPT_SSLCERTTYPE },
{ "_SSLKEY", CURLOPT_SSLKEY },
{ "_SSLKEYTYPE", CURLOPT_SSLKEYTYPE },
{ "_SSLENGINE", CURLOPT_SSLENGINE },
{ "_SSLENGINE_DEFAULT", CURLOPT_SSLENGINE_DEFAULT },
{ "_DNS_USE_GLOBAL_CACHE", CURLOPT_DNS_USE_GLOBAL_CACHE },
{ "_DNS_CACHE_TIMEOUT", CURLOPT_DNS_CACHE_TIMEOUT },
{ "_PREQUOTE", CURLOPT_PREQUOTE },
{ "_DEBUGFUNCTION", CURLOPT_DEBUGFUNCTION },
{ "_DEBUGDATA", CURLOPT_DEBUGDATA },
{ "_COOKIESESSION", CURLOPT_COOKIESESSION },
{ "_CAPATH", CURLOPT_CAPATH },
{ "_BUFFERSIZE", CURLOPT_BUFFERSIZE },
{ "_NOSIGNAL", CURLOPT_NOSIGNAL },
{ "_SHARE", CURLOPT_SHARE },
{ "_PROXYTYPE", CURLOPT_PROXYTYPE },
{ "_ENCODING", CURLOPT_ENCODING },
{ "_PRIVATE", CURLOPT_PRIVATE },
{ "_HTTP200ALIASES", CURLOPT_HTTP200ALIASES },
{ "_UNRESTRICTED_AUTH", CURLOPT_UNRESTRICTED_AUTH },
{ "_FTP_USE_EPRT", CURLOPT_FTP_USE_EPRT },
{ "_HTTPAUTH", CURLOPT_HTTPAUTH },
{ "_SSL_CTX_FUNCTION", CURLOPT_SSL_CTX_FUNCTION },
{ "_SSL_CTX_DATA", CURLOPT_SSL_CTX_DATA },
{ "_FTP_CREATE_MISSING_DIRS", CURLOPT_FTP_CREATE_MISSING_DIRS },
{ "_PROXYAUTH", CURLOPT_PROXYAUTH },
{ "_FTP_RESPONSE_TIMEOUT", CURLOPT_FTP_RESPONSE_TIMEOUT },
{ "_IPRESOLVE", CURLOPT_IPRESOLVE },
{ "_MAXFILESIZE", CURLOPT_MAXFILESIZE },
{ "_INFILESIZE_LARGE", CURLOPT_INFILESIZE_LARGE },
{ "_RESUME_FROM_LARGE", CURLOPT_RESUME_FROM_LARGE },
{ "_MAXFILESIZE_LARGE", CURLOPT_MAXFILESIZE_LARGE },
{ "_NETRC_FILE", CURLOPT_NETRC_FILE },
{ "_USE_SSL", CURLOPT_USE_SSL },
{ "_POSTFIELDSIZE_LARGE", CURLOPT_POSTFIELDSIZE_LARGE },
// { "_TCP_NODELAY", CURLOPT_TCP_NODELAY },
{ "_FTPSSLAUTH", CURLOPT_FTPSSLAUTH },
{ "_IOCTLFUNCTION", CURLOPT_IOCTLFUNCTION },
{ "_IOCTLDATA", CURLOPT_IOCTLDATA },
{ "_FTP_ACCOUNT", CURLOPT_FTP_ACCOUNT },
{ "_COOKIELIST", CURLOPT_COOKIELIST },
{ "_IGNORE_CONTENT_LENGTH", CURLOPT_IGNORE_CONTENT_LENGTH },
{ "_FTP_SKIP_PASV_IP", CURLOPT_FTP_SKIP_PASV_IP },
{ "_FTP_FILEMETHOD", CURLOPT_FTP_FILEMETHOD },
{ "_LOCALPORT", CURLOPT_LOCALPORT },
{ "_LOCALPORTRANGE", CURLOPT_LOCALPORTRANGE },
{ "_CONNECT_ONLY", CURLOPT_CONNECT_ONLY },
{ "_CONV_FROM_NETWORK_FUNCTION", CURLOPT_CONV_FROM_NETWORK_FUNCTION },
{ "_CONV_TO_NETWORK_FUNCTION", CURLOPT_CONV_TO_NETWORK_FUNCTION },
{ "_CONV_FROM_UTF8_FUNCTION", CURLOPT_CONV_FROM_UTF8_FUNCTION },
{ "_MAX_SEND_SPEED_LARGE", CURLOPT_MAX_SEND_SPEED_LARGE },
{ "_MAX_RECV_SPEED_LARGE", CURLOPT_MAX_RECV_SPEED_LARGE },
{ "_FTP_ALTERNATIVE_TO_USER", CURLOPT_FTP_ALTERNATIVE_TO_USER },
{ "_SOCKOPTFUNCTION", CURLOPT_SOCKOPTFUNCTION },
{ "_SOCKOPTDATA", CURLOPT_SOCKOPTDATA },
{ "_SSL_SESSIONID_CACHE", CURLOPT_SSL_SESSIONID_CACHE },
{ "_SSH_AUTH_TYPES", CURLOPT_SSH_AUTH_TYPES },
{ "_SSH_PUBLIC_KEYFILE", CURLOPT_SSH_PUBLIC_KEYFILE },
{ "_SSH_PRIVATE_KEYFILE", CURLOPT_SSH_PRIVATE_KEYFILE },
{ "_FTP_SSL_CCC", CURLOPT_FTP_SSL_CCC },
{ "_TIMEOUT_MS", CURLOPT_TIMEOUT_MS },
{ "_CONNECTTIMEOUT_MS", CURLOPT_CONNECTTIMEOUT_MS },
{ "_HTTP_TRANSFER_DECODING", CURLOPT_HTTP_TRANSFER_DECODING },
{ "_HTTP_CONTENT_DECODING", CURLOPT_HTTP_CONTENT_DECODING },
{ "_NEW_FILE_PERMS", CURLOPT_NEW_FILE_PERMS },
{ "_NEW_DIRECTORY_PERMS", CURLOPT_NEW_DIRECTORY_PERMS },
{ "_POSTREDIR", CURLOPT_POSTREDIR },
{ "_SSH_HOST_PUBLIC_KEY_MD5", CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 },
{ "_OPENSOCKETFUNCTION", CURLOPT_OPENSOCKETFUNCTION },
{ "_OPENSOCKETDATA", CURLOPT_OPENSOCKETDATA },
{ "_COPYPOSTFIELDS", CURLOPT_COPYPOSTFIELDS },
{ "_PROXY_TRANSFER_MODE", CURLOPT_PROXY_TRANSFER_MODE },
{ "_SEEKFUNCTION", CURLOPT_SEEKFUNCTION },
{ "_SEEKDATA", CURLOPT_SEEKDATA },
{ "_CRLFILE", CURLOPT_CRLFILE },
{ "_ISSUERCERT", CURLOPT_ISSUERCERT },
{ "_ADDRESS_SCOPE", CURLOPT_ADDRESS_SCOPE },
{ "_CERTINFO", CURLOPT_CERTINFO },
{ "_USERNAME", CURLOPT_USERNAME },
{ "_PASSWORD", CURLOPT_PASSWORD },
{ "_PROXYUSERNAME", CURLOPT_PROXYUSERNAME },
{ "_PROXYPASSWORD", CURLOPT_PROXYPASSWORD }
};
//инициализируем curl
curl = curl_easy_init();

Смысл в то, что когда прилетает параметр _PROXYPASSWORD, то он заменяется на CURLOPT_PROXYPASSWORD. CURLOPT_PROXYPASSWORD же в свою очередь является числом определенным через define самим кулом. Т.е. вызывая элемент массива [ n 1 ] мы по факту обращаемся к [n 2]. Это позволяет строкой обращаться к числу и не иметь проблем с типами данных.

Автор: usb2kbd 25.1.2014, 21:47

Цитата(DarkMaster @ 25.1.2014, 21:12) *

По количеству надо только сориентироваться. 2-4 штуки будет.


В данный момент имеется 3 "материала по проекту". Остальное, если необходимо, смогу дособрать в кротчайшие сроки.

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

Что касается Dll-ки, пока оставляю как есть. В принципе, основные функции она выполняет - можно будет тестить, остальное косметика.

Из приятного: планирую отснять и добавить видео "Usb2kbd и UoPilot".

Автор: DarkMaster 25.1.2014, 22:18

Еще такой хитрый вопрос. Как оно дружит с виртуальными машинами, rdp(сам к себе) и особенно АСТЕРом?

Возможен ли будет последующий апгрейд прошивки? Возможно ли будет шить через USB?

Цитата
Просто нужно учесть минимальные рандомные "человеческие" паузы м.д нажатиями, а не отсылать 100500 нажатий сразу smile.gif

Вот это кстати трагедия. Причем большая. И беда даже не в том, что в 1 скрипте необходимо будет очень-очень много быстро нажать(хотя и в этом тоже, но это можно контролировать), беда в том, что 2 параллельных скрипта друг друга могут легко запороть. Может быть очередь хотя бы реализовать?

Автор: usb2kbd 27.1.2014, 14:39

Цитата(DarkMaster @ 25.1.2014, 23:18) *

Еще такой хитрый вопрос. Как оно дружит с виртуальными машинами, rdp(сам к себе) и особенно АСТЕРом?


Тестировалось на VMware Workstation 10, ОС XP - девайс успешно определяется в виртуальной системе, нажатия клавиш и мыши работают даже в свернутом состоянии "виртуальной машины". Из хоста также в виртуальную машину отправляется (ну да и это естесственно).

Через RDP в удаленную машину отправляются нажатия прекрасно, самому себе не пробовал, да и не пойму особо зачем.

АСТЕР не пробовал, сайт нашел, суть - разделение ресурсов одной тачки на много юзеров. Посмотрю, поразбираюсь...

Все результаты тестов будут добавлены в раздел сайта "назначение продукта" в преимущества.

Цитата(DarkMaster @ 25.1.2014, 23:18) *

Возможен ли будет последующий апгрейд прошивки? Возможно ли будет шить через USB?

Нет, девайс без usb-аплоадера. Да и, честно, не вижу смысла апгрейдить прошивку, т.к. проще переписать DLL/ПО под конкретные нужды, девайс же лишь "исполнитель" команд сверху.

Цитата(DarkMaster @ 25.1.2014, 23:18) *

Вот это кстати трагедия. Причем большая. И беда даже не в том, что в 1 скрипте необходимо будет очень-очень много быстро нажать(хотя и в этом тоже, но это можно контролировать), беда в том, что 2 параллельных скрипта друг друга могут легко запороть. Может быть очередь хотя бы реализовать?

Хоть девайс и быстр, да и вероятность 2-х и более одновременных по времени нажатий достаточно мала в пределах одного-трех средних скриптов, сегодня-завтра поставлю творческий эксперимент по посылке ОДНОВРЕМЕННЫХ посылок 2 пакетов в девайс и рассмотрю техническую возможность реализовать буфер. Отпишусь.

Автор: DarkMaster 27.1.2014, 15:20

Цитата
вероятность 2-х и более одновременных по времени нажатий достаточно мала

Это лишь вопрос времени. У меня, например, были скрипты по перебору менюшек. Стоит чар и тыкает тупо менюшки 24/7, а чаров 4 штуки. Каждый из них делал около 3 нажатий в секунду, т.е. 12 кликов в секунду. Через сколько будет сбой? Скрипты хоть и были сильно вылизаны на всевозможные огрехи подвисания и прочие проблемы, но сбои все равно были - все лаги и глюки клиента не отловишь. А это еще одно место которое будет регулярно во всех кликах проваливаться. Плюс гонка за производительностью была очень большая, каждая мс экономилась. Сделаешь проверки на все эти клики - скрипты встанут.
Цитата
Нет, девайс без usb-аплоадера. Да и, честно, не вижу смысла апгрейдить прошивку, т.к. проще переписать DLL/ПО под конкретные нужды, девайс же лишь "исполнитель" команд сверху.

Суть в том, чтобы потом не пришлось бегать искать программатор или тащить его из-за бугра. Брать в городе за 30 баксов, когда он стоит 4 меня жаба задушит, тащить для меня несколько проблемно.
Цитата
Из хоста также в виртуальную машину отправляется (ну да и это естесственно).

В этот момент поподробнее. Т.е. если я сделаю нажатие в основной ОС, то оно прилетит и в виртуалку? И наоборот?
Цитата
Через RDP в удаленную машину отправляются нажатия прекрасно, самому себе не пробовал, да и не пойму особо зачем.

Смысл прост - это та же виртуалка только с минимумом требуемых ресурсов. Вопрос по сути тот же самый что и с виртуалками. Возможно ли будет отсылать нажатия не во все сразу. Разделяется ли как-то эмуляция системой. Цель проста до безобразия: запускаем рдп/астер/виртуалку и нас больше не беспокоит проблема активного окна и блокировки компьютера скриптом. С астером все несколько проще - там есть фильтры на оборудавние(но не уверен как отработают), а вот как с остальным не понятно.

Автор: usb2kbd 27.1.2014, 16:54

Цитата(DarkMaster @ 27.1.2014, 16:20) *

Суть в том, чтобы потом не пришлось бегать искать программатор или тащить его из-за бугра. Брать в городе за 30 баксов, когда он стоит 4 меня жаба задушит, тащить для меня несколько проблемно.

Возможно, я включу в раздел сайта схему "подпайки" к микроконтроллеру (МК) разводки на программатор Usbasp. Подпаяться к МК можно при желании будет самому, купить программатор Usbasp с переходником можно будет на Ebay'e - едет где-то 21-30 дней, заливать Firmware также можно будет самому. Но опять же повторюсь, девайс лишь "железка" и выполняет он только строгие функции по нажатиям, перемещениям, большего от него не требуется, основной инструмент - DLL и ПО. Такие действия, как "Прошивка микроконтроллера программатором", "правильное выставление фьюз-битов" и.т.д - это уже действия для людей, более глубоко знакомых с микропроцессорной электроникой, не думаю что этим будет каждый второй заниматься.

На счет буфера согласен, достаточно важная функция, рассмотрю, потестирую как отрабатываются 2 и более одновременных события.
Цитата(DarkMaster @ 27.1.2014, 16:20) *

В этот момент поподробнее. Т.е. если я сделаю нажатие в основной ОС, то оно прилетит и в виртуалку? И наоборот?

Установил VMware Workstation 10, запустил на виртуалке XP.

Эксперимент 1: Запустил у себя (на windows 7) скрипт, который через 5 секунд нажимает на машине, на которой подключен девайс (на w7) клавишу "h". Быстро переключился на окно с виртуалкой, сделал его активным. Вижу, как в блокноте, запущенном на вирт машине (xp) отпечатался знак "h".
Эксперимент2: "Перенаправил" usb2kbd, так как будто девайс подключен на виртуальной машине (xp) - это функция VMware.. Девайс на XP в виртуалке был найден и определен, а соотв с моей машины W7 был отключен. Устанавливаю teamviewer соединение (управление) из XP с моей машиной (w7). Запускаю на вирт машине (xp) скрипт, с нажатием клавиши "h", быстро сворачиваю у себя окно с вирт машиной (xp), жду с открытым блокнотом у себя (w7). Через 5 секунд у меня печатается знак "h".

Цитата(DarkMaster @ 27.1.2014, 16:20) *

Возможно ли будет отсылать нажатия не во все сразу. Разделяется ли как-то эмуляция системой. Цель проста до безобразия: запускаем рдп/астер/виртуалку и нас больше не беспокоит проблема активного окна и блокировки компьютера скриптом. С астером все несколько проще - там есть фильтры на оборудавние(но не уверен как отработают), а вот как с остальным не понятно.

Насколько я понял тут поднимается извечный программный вопрос - как отослать нажатия в определенное окно... Для понимания вопроса представьте себе Usb2kbd как обычную клавиатуру и его функция - это Simple нажать на клавишу и все, оно не умеет отсылать нажатия "куда-то" - все это уже функции ПО. Каким образом это достигнется - уже задача программиста ПО. Если виртуалки типа АСТЕР умеют как-то устанавливать типа "туннеля" между машиной хостом и вирт машиной, "пробрасывая" определенную клавиатуру или мышь, и нажатие на клавишу на основной машине приведет к пропечатыванию символа ТОЛЬКО на проброшенной вирт машине (причем даже если она в свернутом окне) - то это только плюс этому ПО. Если это действительно так, то тут проблем, уверен, не возникнет, т.к. usb2kbd - цитата "устройство не эмулирует клавиатуру/мышь - оно по сути дела является таковым". smile.gif

Автор: DarkMaster 27.1.2014, 17:16

Цитата
Насколько я понял тут поднимается извечный программный вопрос - как отослать нажатия в определенное окно... Для понимания вопроса представьте себе Usb2kbd как обычную клавиатуру и его функция - это Simple нажать на клавишу и все, оно не умеет отсылать нажатия "куда-то" - все это уже функции ПО. Каким образом это достигнется - уже задача программиста ПО. Если виртуалки типа АСТЕР умеют как-то устанавливать типа "туннеля" между машиной хостом и вирт машиной, "пробрасывая" определенную клавиатуру или мышь, и нажатие на клавишу на основной машине приведет к пропечатыванию символа ТОЛЬКО на проброшенной вирт машине (причем даже если она в свернутом окне) - то это только плюс этому ПО. Если это действительно так, то тут проблем, уверен, не возникнет, т.к. usb2kbd - цитата "устройство не эмулирует клавиатуру/мышь - оно по сути дела является таковым". smile.gif

Тут вопрос системного ПО в первую очередь. А если в диспетчере устройств основной машины отключить устройство, то в виртуальной оно останется? Сможет ли работать? Будут ли при этом клики в несколько систем одновременно?

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

Автор: usb2kbd 27.1.2014, 18:11

Цитата(DarkMaster @ 27.1.2014, 18:16) *

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


Скачал Астер v7 - поставлю на 2 разделяемых места, покопаюсь. По кр мере все USB-клавы и мыши он видит корректно (вкл девайс).

Автор: DarkMaster 27.1.2014, 19:15

Цитата
На счет буфера согласен, достаточно важная функция, рассмотрю, потестирую как отрабатываются 2 и более одновременных события.

Вот это кстати надо поуму делать не через длл а железкой. Либо дублировать, что более корректно. Крутится у нас несколько пилотов, например, за счет виртуалок или того же астера. Каждый из них будет иметь свою длл. Боюсь даже запуск нескольких вкладок может иметь свои копии функций и не иметь общей области видимости. Т.е. ограничить время повторного нажатия может не получиться просто дллкой. При нескольких копиях пилота тем более дллкой это не решится.

Автор: usb2kbd 29.1.2014, 11:11

Цитата(DarkMaster @ 27.1.2014, 20:15) *

Астер с клавами и мышами у меня все раскидывал корректно

Поставил Астер, настроил 2 рабочих места. Совместимость - 75%. Результат:

1) Делаю место №1 условно "виртуальной машиной". Из устройств управления к месту №1 подвязываю: usb2kbd, 1 реальная резервная клава, 1 реальная резервная мышь. Завожу юзера (админа). Вывожу изображение на резервный свободный монитор. Место №2 - основное ("рабочее"), это "моя машина" с настоящим рабочим монитором, за которым постоянно сижу. Из управления подвязываю: моя клава, моя мышь. При запуске скрипта "hello" на "виртуальной" машине (место №1) - все прекрасно отрабатывает. Ну и, логично, при запуске скрипта "hello" из места №2 - пишет "девайс не подключен". Т.е. место №1 можно свободно использовать как автономное, и не "засорять" основное место (место №2) нажатиями, окнами игр и т.д. Место №2 - это будет Ваше основное раб. место.
И эта схема выше работает прекрасно ....

теперь обратный конфиг:
2) Делаю место №2 условно "виртуальной машиной", а место №1 - "рабочим". Все то же, только логично меняю мониторы и устройства ввода на противоположные. Что происходит: Usb2kbd работает на машине №2 (виртуальной), но упорно управляется только с 1-ой. т.е. запуск скрипта с машины №2 - говорит что девайс не подключен, а запуск с 1-ой - отрабатывает, но отсылает нажатия только во 2-ю. Почему так? Предполагаю что при "пробросе" в "Астере" девайса на виртуальные машины 2, 3, 4, 5 (т.е. на машину с номером больше "1"), каким-то образом "не пробрасываются" управляющие сигналы для usb2kbd - они всегда остается в машине №1.

Выводы: usb2kbd совместимо с "АСТЕР" не полностью, но цель:
Цитата:
----Цель проста до безобразия: запускаем рдп/астер/виртуалку и нас больше не беспокоит проблема активного окна и блокировки компьютера скриптом---

у нас выполняется (виртуалка с окном игры в месте №1, рабочее место №2).

Какие преимущества дает АСТЕР (кто еще не знаком). В виртуальной машине типа vmware - вы не сможете полноценно запускать требовательные игры (Lineage, Wow и т.д), а в "Астере" - сможете, т.к. виртуальная машина в Астере является по сути точной копией "реальной" машины со всеми ее ресурсами (видеокарта, оперативка и.т.д).


Теперь еще одно:

Ну все равно не догоняю одну фразу


Цитата(DarkMaster @ 27.1.2014, 20:15) *

Крутится у нас несколько пилотов, например, за счет виртуалок или того же астера.


Обе системы: что vmware, что Астер - полностью "забирают" под себя USB-устройство. Т.е. если мы, например, запустим Астер и рабочему месту №1 "отдадим" usb2kbd, то оно полностью "заберет" его себе, и назначить usb2kbd, одновременно, еще какому-то месту, по кр. мере по опытам, не возможно. Или речь идет о комбинации Ctrl+F12?. Запустить несколько копий Uopilot в пределах одной виртуалки с Usb2kbd можно, ну, или же запустить несколько копий UoPilot в нескольких виртуалках, но БЕЗ usb2kbd, тоже можно, но это ж другое...

В общем не догнал я этот момент как-то.

Автор: DarkMaster 29.1.2014, 14:25

Цитата
В общем не догнал я этот момент как-то.

Я думал, что возможно будет сделать так:
Создаем рабочие места(астер в 1 очередь либо виртуалки):
1) Основное раб место.
2) Бот1
3) Бот2
В Бот1 биндим скилл на F18, в Бот2 биндим скил на F19.
Запускаем пилот1 на Бот1 и пилот2 на Бот2.
Дальше по моему плану в пилоте1 и пилоте2 полностью корректно будут нажиматься F18 и F19, нажатия будут проходить в 2 рабочие машины, а за счет уникальности клавиш у нас не будет конфликтов.
Более того такие бинды могли бы позволить оставить устройство и на основной машине. Но если бинды были бы более стандартные(скан коды не бесконечные) я имел бы возможность полностью отрезать устройство от основной машины и оставить на Бот1 F1-5, а на Бот2 F6-10.

Цитата
если в диспетчере устройств основной машины отключить устройство, то в виртуальной оно останется? Сможет ли работать? Будут ли при этом клики в несколько систем одновременно?

Это про вмварь, все еще актуально.

Как себя ведет система при нескольких подключенных устройствах? Меня интересует более, чем одна вирт машина/два астера. Ну и основное раб место никто не отменял.

Дллка полностью монопольно захватывает устройство? Т.е. одновременно 2 длл не могут работать с 1 устройством?

Автор: usb2kbd 31.1.2014, 15:16

На пару-тройку дней ухожу в разработку "кольцевого буфера" FIFO для девайса, для кэширования и дальнейшего воспроизведения слишком "быстрых" команд в usb2kbd. В настоящее время опытным путем было определено, что минимальная стабильная пауза м/д пакетами, отправляемыми в usb2kbd из DLL составляет 22 мс и буферизация не требуется. При уменьшении ее (паузы) - уже есть необходимость буферизации. В общем попробую реализовать... Почему решено делать на базе девайса? Дело в том, что в ответ на команду из Dll девайс толком "ответить" (например, что он "занят") назад не умеет. Кстати,

Цитата(DarkMaster @ 29.1.2014, 15:25) *

Дллка полностью монопольно захватывает устройство? Т.е. одновременно 2 длл не могут работать с 1 устройством?

Нет, не монопольно, Dll лишь преобразовывает входящие данные в "удобноваримые" для девайса и отсылает их в USB. А вот определить, обработан ли пакет в девайсе или он "пропущен" девайсом, т.к. USB интеррапт девайса был занят обработкой предыдущего пакета - сложно, на практике - даже не возможно. Поэтому и нужен буфер внутри девайса.
2 Dll в комплекте с 2 Uopilot спокойно работают с одним usb2kbd.

Цитата(DarkMaster @ 29.1.2014, 15:25) *

если в диспетчере устройств основной машины отключить устройство, то в виртуальной оно останется? Сможет ли работать? Будут ли при этом клики в несколько систем одновременно?

Про Vmware - отключить девайс в основной машине не получается, т.к. при "пробросе" девайса на вирт машину, оно полностью "исчезает" в дисп задач на осн машине и появляется в виртуальной. Отключать на основной машине, получается, нечего.

Цитата(DarkMaster @ 29.1.2014, 15:25) *

Как себя ведет система при нескольких подключенных устройствах?

При нескольких подключенных usb2kbd в одной системе? Можно подключать хоть N девайсов, но важно знать, что для того, чтоб они работали и определялись как N независимых мышей/клав, необходимо на уровне прошивки заранее присваивать им разные, уникальные для каждого девайса VID и PID, тогда при подключении они будут прекрасно "сосуществовать". НО есть одно НО. Dll-ка ищет для обращения usb2kbd с конкретными PID и VID, заданными по умолчанию. И соотв. второй девайс, прошитый с другой парой VID PID - она не увидит. В связи с чем после реализации буфера рассмотрю создание .ini файла, который должен будет лежать рядом с DLL-кой, и в котором можно будет задавать другие PID и VID для данной Dll. (все это нужно будет для того, чтоб можно было пользоваться несколькими usb2kbd в пределах одной операционной системы).

Цитата(DarkMaster @ 29.1.2014, 15:25) *

Я думал, что возможно будет сделать так:
Создаем рабочие места(астер в 1 очередь либо виртуалки):
1) Основное раб место.
2) Бот1
3) Бот2
В Бот1 биндим скилл на F18, в Бот2 биндим скил на F19.
Запускаем пилот1 на Бот1 и пилот2 на Бот2.
Дальше по моему плану в пилоте1 и пилоте2 полностью корректно будут нажиматься F18 и F19, нажатия будут проходить в 2 рабочие машины, а за счет уникальности клавиш у нас не будет конфликтов.
Более того такие бинды могли бы позволить оставить устройство и на основной машине. Но если бинды были бы более стандартные(скан коды не бесконечные) я имел бы возможность полностью отрезать устройство от основной машины и оставить на Бот1 F1-5, а на Бот2 F6-10.


Все равно не пойму, как один девайс usb2kbd, находясь на основной машине "Астера" (место №1) будет получать и слать нажатия в места №2 и №3?
Допустим, на месте №2 работает Uopilot, там же запущена "линейка" и вот настало событие и этот пилот "хочет" чтоб в линягу полетело нажатие F1 - какие будут его действия, при условии, что usb2kbd в данный момент к месту №2 не подключено, - девайс на раб месте №1. Как послать команду в место №1 и более того, чтоб девайс с места №1 "ответил" назад именно в место №2 - инициатор запроса?

Автор: DarkMaster 1.2.2014, 8:39

Астер к сожалению прямо сейчас из системы вырезан с особой жестокостью, т.к. необходимо было налить патчи на RDP, который астер так же использовал и не давал модифицировать. Насколько помню там можно было указать раб места девайса через запятую.

Даже если брать не астер, а те же виртуалки или рдп, то принцип не изменяется. На виртуалках ты сам говорил, что прострел идет насквозь во все ОС.

Цитата
При нескольких подключенных usb2kbd в одной системе?

Угу. Точнее на одном физическом компе, т.к. ос могут быть гостевые/раб места и т.д. Предположим, что что-то не удалось красиво распараллелить, то можно на каждое раб место прокинуть по девайсу. Как только меня ид на девайсине не понятно... шить?

Автор: DarkMaster 2.2.2014, 10:59

Предчувствуя первую же проблему при написании скриптов - таймауты отсыла клавиш. ИМХО было бы неплохо добавить флаг ожидания нажатия. Негарантированного, но все же. Т.е.:
1) в дллку падает N нажатий.
2) в дллке считаем сколько времени потребуется девайсу на обработку.
3) в дллку прилетает нажатие с флагом ожидания завершения.
4) дллка впадает в спячку пока очередь не будет очищена(сразу можно не кидать на девайс. зачем лишний элемент в буфер?)
5) отсылается команда на девайс
6) дллка опять впадает в спячку на время обработки.
Хочу подчеркнуть, что это контроль только в пределах длл. Ожидание делать лучше чуть больше расчетного, чтобы лишний клик с буфере железки от другой вкладки/пилота не настакивался при агрессивном использовании основной вкладки. Как я уже писал, наиболее корректным способом обработки будет буфер как на стороне железки, так и на стороне длл. Это позволит:
1) Избежать лишней писанины и попыток контроля в скрипте(а их иначе придется делать). Пихать gosub'ы перед каждым вызовом клика на предмет проверки буфера не есть гут.
2) Избежать вопросов почему оно не работает или работает криво. Эти вопросы неизбежно посыпятся как только человек начнет спамить.
3) Повысит стабильность работы в целом. Это не гарантия от осечки, как и буфер на железке кстати. Но ECC тоже не гарантия отсутствия ошибки памяти, но какой дурак будет без ECC добиваться стабильности?
ИМХО данный режим лучше сделать по умолчанию, а если неймется и хочешь самостоятельно контролировать эти задержки, то в параметры добавить флаг "-1". -1, а не, например, 0 потому, что я все-таки надеюсь избавиться от обязаловки четырех параметров, когда частенько нужно будет только два, а -1 позволит спокойно парсить строку в обоих вариантах синтаксиса.

// Чует, чует мое сердце, что прошивка будет обновляться со временем...

Автор: usb2kbd 3.2.2014, 1:41

Ну вот, в очередной раз хочу Вас порадовать, друзья мои! Три дня усиленного мозгового безвылазного штурма и вот результат, очень даже положительный!

Итак

1. Реализован и жестко оттестирован "кольцевой буфер" внутри девайса размерностью 240 байт (40 пакетов * 6 байт = 240 байт, где 1 пакет - это один раз вызов функции. Например Send (1,4,0,0) - это один пакет - "нажать клавишу А" ). Все присланные из Dll-ки данные теперь последовательно кладутся в буфер девайса и становятся в очередь на обработку. Если очередной пакет пришел в девайс из Dll, но девайс еще "занят" обработкой предыдущего пакета, пакет теперь не теряется безвозвратно, как было ранее, а кладется в буфер, занимая одно из 40 мест в буфере и так далее. Теперь внимание! Работа девайса без заполнения буфера осуществляется, если заданы паузы между пакетами в 25 мс и более, Т.е. для того, чтоб буфер не заполнялся и девайс отрабатывал входящие пакеты без использования буфера - нужна примерно такая схема:

Send (1,4,0,0); // нажать клавишу А
Sleep, 25; // пауза 25 мс
Send (2,4,0,0); // отжать клавишу А
Sleep, 25;

Мы же, придерживаясь математического тождества, примем за эталон такую схему для одной DLL:

Send (1,4,0,0);
; тут любая пауза м.д. нажатием и отжатие клавиши - от 0 и больше.
Send (2,4,0,0);
Sleep, 50;


Это идеальная схема для одной DLL и одного девайса. Если же эти паузы меньше (например наступило какое-то срочное событие, или отработало событие второго скрипта и.т.д), тогда девайс будет класть такие "срочные" нажатия в буфер и по мере возможности исполнять позже. Это как бы нормальная ситуация. Но если таких "срочных" нажатий будет очень много (мне конфет от жадности (с)) и буфер в 40 пакетов будет переполнен, тогда usb2kbd мигнет дополнительным светодиодом (добавил в схему), что будет означать то, что у Вас слишком много "срочных" пакетов - увеличьте паузы в вашем скрипте. Переполнение буфера будет означать, что этот "лишний" пакет не обработан девайсом и отбракован - т.е. примите меры. А принимать меры нужно будет, т.к. предыдущий пакет "нажать" клавишу будет отработан, а пакет "отжать" ее - нет, и будет "залипание" клавиши, паника и.т.д. smile.gif

Теперь о нескольких Dll-ках и одном usb2kbd (нескольких пилотах и одном usb2kbd). Как я уже говорил, Dll-ка лишь отправляет пакет в девайс в удобноваримом для него виде и использование возможно N-го кол-ва DLL. Идеальную схему для одной Dll я уже описал выше. Но несколько Dll будут кидать пакеты чаще в одно дышло (usb2kbd) - не так ли? Вывод - чем больше кол-во активных копий DLL - тем выше нужно ставить паузы в каждом скрипте, чтоб не было того же переполнения буфера.
Сделаем простой расчет: для одной копии DLL важно правило: паузы 50 мс м.д. нажатиями разных клавиш (читаем выше), соотв - для 2 копий - 50*2=100 мс, для 3-х копий - 50*3 = 150 мс. И это нужно будет учесть для всех 3-х скриптов. Кроме того, если у нас будет несколько копий Dll, я бы порекомендовал, если у нас простое нажатие и отжатие одной клавиши (а не комбинация) - "отжимать" клавишу кодом "8" (отжать все клавиши) - так спокойнее против "залипаний".

Итак, выводы и "базовые" паузы для девайса:

Используем 1 копию DLL:

Send (1,4,0,0);
; тут любая пауза м.д. нажатием и отжатие клавиши - от 0 и больше.
Send (2,4,0,0);
Sleep, 50;

Используем 2 копии DLL (ниже код будем юзать во всех 2-х скриптах!!):


Send (1,4,0,0);
; тут любая пауза м.д. нажатием и отжатие клавиши - от 0 и больше.
Send (8,4,0,0); // тут отжимаю клавишу не кодом 2, а кодом 8
Sleep, 100;

Используем 3 копии DLL (ниже код будем юзать во всех 3-х скриптах!!):

Send (1,4,0,0);
; тут любая пауза м.д. нажатием и отжатие клавиши - от 0 и больше.
Send (8,4,0,0); // тут отжимаю клавишу не кодом 2, а кодом 8
Sleep, 150;


Dll-ку насиловать не будем, пусть остается лишь "передатчиком".


PS: Все эти доводы проверял на своей тачке - отрабатываемость 100%. Значения могут несколько отличаться в зависимости от Вашей конкретной системы. В любом случае Вы можете немножко поэкспериментировать и подстроить базовые паузы в скрипте под себя.

Автор: DarkMaster 3.2.2014, 3:56

все зашибись. только sleep видимо стал причиной возни с железкой, плюсами и может чем-то еще. У нас это wait - не смущай народ smile.gif

и последний уже наверно вопрос: от чипа что-нибудь зависит в плане быстродействия? Там вроде ATMega8? Или это уже ограничения железа/ос?

Автор: usb2kbd 3.2.2014, 12:13

Цитата(DarkMaster @ 3.2.2014, 4:56) *

от чипа что-нибудь зависит в плане быстродействия?


Не думаю. Большинство микроконтроллеров ATMEL работает на стандартной частоте до 16Mhz и даже дело не в этом. Тут, скорее всего, ограничение в спецификации USB и именно HID USB клавиатуры как таковой. Но, согласитесь, навряд-ли человек сможет осознанно без ошибок набирать до 16 знаков в секунду, что умеет Usb2kbd. smile.gif

Еще несколько заметок о запуске виртуалок с использованием одного девайса...

Цитата(DarkMaster @ 1.2.2014, 9:39) *

Насколько помню в Астере можно было указать раб места девайса через запятую.

Через запятую только звук можно, а вот мыши/клавы - только строгое одно место (проверял спецом ранее).

Цитата(DarkMaster @ 1.2.2014, 9:39) *

На виртуалках ты сам говорил, что прострел идет насквозь во все ОС.

Прострел с локальной машины в виртуальную vmware идет при условии открытого и активного окна этой виртуалки. Если окно не активно/свернуто - сколько в активной машине не жми - все пойдет только в локальную. Более того, из собственного опыта знаю, что при отправлении нажатия из локальной в ЛЮБУЮ виртуальную машину/rdp/team viewer - нажатие-то прийдет туда, но прийдет не настоящим, а сэмулированным. И тут получается теряется смысл usb2kbd, можно обойтись и стандартными средствами API windows. Т.е. отсылать девайсом с основной машины куда-то в виртуальные/rdp/team viewer - не вижу смысла. Исключение составляет, конечно, АСТЕР, где можно пробовать отсылать нажатия в бот-места с основного раб места (место №1 - почему читаем выше топик), быстро временно "пробрасывая" горячей клавишей usb2kbd в нужное нам бот-место (эта важная функция есть в "Астере").

Мое видение реализации схемы "основное и бот-места и один usb2kbd с использованием АСТЕРА":

Cтандартная уже разжеванная выше схема в АСТЕРЕ:

1. Осн раб место №1 с usb2kbd и управляющим uopilot (или любым другим ПО).
2. Бот-место №2 с uopilot, линягой
3. Бот-место №3 с uopilot, Wow

Допустим, uopilot с бот-места №2 хочет послать в свою линягу нажатие. Для этого он должен как-то сообщить об этом своем "желании" в основное место, где живет usb2kbd. Как?

Например, Метод №1 (предпочтительный мной) Uopilot с бот места №2 пишет в условленный файл (например с:\temp\2bot.txt) свое "желание" - код нажатия. Uopilot (или другое управляющее ПО) с основной машины постоянно проверяет этот файл, и если в нем что-то есть, то ПО должно последовательно 1) "пробросить" usb2kbd горячей клавишей в бот-место №2 2) послать в usb2kbd прочитанную клавишу из txt - она пойдет в бот-место №2, т.к. usb2kbd уже "проброшен" туда 3) очистить файл с:\temp\2bot.txt 3) Повторно возвратить usb2kbd назад в осн. тачку по горячей клавише Астера.

Другие методы вы можете придумать самостоятельно, все зависит от изощренности Вашей мысли: например, Uopilot передает "желание" по rdp/team viewer/radmin на основную тачку в режиме управления. Т.е. uopilot с линейкой, если захочет послать настоящие"нажатия в свою линейку делает следующее - 1) сделать активным окно team viewer/rdp/radmin 2) послать туда нужное нажатие. 3) на основной тачке как-то это нажатие "отловить", причем это нажатие должно также нести информацию о том, откуда оно поступило (бот-место №2) 4) дальше по схеме выше из Метода 1 .

Так что все возможно при наличии серого вещества и желания smile.gif


Цитата(DarkMaster @ 1.2.2014, 9:39) *

Предположим, что что-то не удалось красиво распараллелить, то можно на каждое раб место прокинуть по девайсу. Как только меня ид на девайсине не понятно... шить?


Пара VID/PID только прошивается в девайс. Соответственно, если человек вздумает собрать 2 и более девайсов - то ему обязательно нужны девайсы с разными парами.

А вот Dll, как я писал выше, на сегодня может работать только с одной парой VID/PID. Вот сейчас займусь тем, что попробую вынести конфиг VID/PID из DLL в .ini файл. При вызове функции из DLL она считает ini файл и поймет, с какой парой ей работать. Естественно, ini файл можно править.

И еще раз напомню, друзья, использование usb2kbd будет обоснованно там и только там, где это действительно необходимо: Например,
цитата с сайта usb2kbd.info ------
- Автоматизация приложений Windows, когда другое программное обеспечение блокирует использование "эмулированных" нажатий;
конец цитаты-----------
Если в этом нет необходимости, пользуйтесь "старыми" схемами на API Windows.

Как-то так )

Автор: DarkMaster 3.2.2014, 12:42

Цитата
Пара VID/PID только прошивается в девайс. Соответственно, если человек вздумает собрать 2 и более девайсов - то ему обязательно нужны девайсы с разными парами.

т.е. ты будешь шить ручками под заказ? Я к тому, что мне оно надо.

Автор: DarkMaster 3.2.2014, 13:18

ид надо обязательно делать разные всем, причем совсем. иначе ловить будут почерному.

Автор: usb2kbd 3.2.2014, 13:45

Цитата(DarkMaster @ 3.2.2014, 13:42) *

т.е. ты будешь шить ручками под заказ? Я к тому, что мне оно надо.


Да, в МК зашивается свободная пара и в ini для каждой DLL можно будет указать конкретную пару.

Цитата(DarkMaster @ 3.2.2014, 13:42) *

ид надо обязательно делать разные всем, причем совсем. иначе ловить будут почерному.


Можно, конечно, предположить, что защита со временем опуститься до того, что будет проверять VID/PID подключенных USB устройств и их блочить. Но а если "вдруг" устройство представится как, например, Logitech mouse/keyboard? Заблочив его, защита заблочит данные нормальные девайсы (клавиатуры и мыши logitech с данной парой) и у всех в мире - что вызовет бурю негодования, в общем так они делать не будут и не вправе.

Что я предлагаю: Изначально usb2kbd прошивается "свободной" общедоступной парой VID/PID, девайс будет полностью функционален, но с этой парой может быть использован только для "учебных" целей - это правило использования данной "свободной" пары VID/PID.

Для продвинутых пользователей usb2kbd может по желанию комплектоваться программатором usbasp (отдельная стоимость) или же без него - (можно самостоятельно заказать и купить в Китае). В следующем релизе usb2kbd я добавляю на девайс пины именно для этого программатора и любой пользователь сможет его "прошить" по несложной инструкции (имея девайс, программатор usbasp и инструкцию на сайте как шить от А до Я).

Ну, а умея "шить" девайс, все дороги открыты smile.gif

Автор: DarkMaster 3.2.2014, 15:28

Цитата
Но а если "вдруг" устройство представится как, например, Logitech mouse/keyboard? Заблочив его, защита заблочит данные нормальные девайсы (клавиатуры и мыши logitech с данной парой) и у всех в мире - что вызовет бурю негодования, в общем так они делать не будут и не вправе.

Согласно лицензионному соглашению по под винду не имеет права изменить или блокировать какие-либо части/программы/функции ос. По факту смотрим на л2 и понимаем, что виртуальная клавиатура заблокирована. Т.е. формально это нарушени ЛС. На это надеятся ну вообще не стоит. В данный должен быть либо рандомный набор набор либо реальные бренды и рандомные ид и какие-то еще индефикаторы. Так же не стоит под конкретную модель косить. Все это будет заблокировано легко и просто. Если что иннова с этого форума вообще не слазила. Есть еще один забавный пример. Есть ид торрентклиетов, накручивальщики счетчиков со стандартными наборами ид улетают сразу не смотря даже на очень быстрое и активное обновление этих ид.
Цитата
Что я предлагаю: Изначально usb2kbd прошивается "свободной" общедоступной парой VID/PID, девайс будет полностью функционален, но с этой парой может быть использован только для "учебных" целей - это правило использования данной бесплатной пары VID/PID.

Простите, но это свинство. Да и выпускать заведомо примитивно детектируемый девайс, как минимум странно. Смысл девайса тогда в чем, если он улетит в бан листы со следующим же апдейтом?
Цитата
Ну, а умея "шить" девайс, все дороги открыты

я не уверен в правильности открытой прошивки, т.к. это потенциально сильно увеличивает шанс детекта девайса.

Автор: usb2kbd 3.2.2014, 16:00

Цитата(DarkMaster @ 3.2.2014, 16:28) *

В данный должен быть либо рандомный набор набор либо реальные бренды и рандомные ид и какие-то еще индефикаторы. Так же не стоит под конкретную модель косить. Все это будет заблокировано легко и просто.

Ну вы хотите, прям универсальный девайс-трансформер-призрак-все-в-одном. Как говорилось в известном произведении "я не волшебник" (с). Я предлагаю инструмент, который что-то умеет + инструкцию, как его приспосабливать под разные нужды (разные пары), а нужды у всех разные. При этом не хочу и не могу нарушать правила "хорошего тона".

Цитата(DarkMaster @ 3.2.2014, 16:28) *

я не уверен в правильности открытой прошивки, т.к. это потенциально сильно увеличивает шанс детекта девайса.

Не путайте прошивку с исходным кодом, кто сказал что исходный код будет открытым? Даже если файл прошивки (.hex) будет открытым, он нигде в системе не фигурирует, это бинарный код, понятный только микроконтроллеру, да и притом не каждому, и никаких зацепок к алгоритму, имея его, защита иметь не будет.

Цитата(DarkMaster @ 3.2.2014, 16:28) *

Простите, но это свинство. Да и выпускать заведомо примитивно детектируемый девайс, как минимум странно. Смысл девайса тогда в чем, если он улетит в бан листы со следующим же апдейтом?

Это моя позиция и позиция сайта. А смысл кому-то получить девайс с каким-то "левым" ID, который все равно не будет возможности изменить в дальнейшем? Я же не буду при малейших изменениях в какой-то системе защиты слать новый девайс с новой прошивкой... Отсюда необходимость в программаторе за 4 бакса из Китая. Во-вторых, такой системы детекции еще нет и неизвестно, будет ли и когда.. Поэтому, пока есть - пользуемся....

Нельзя объять необъятное (с). Сколько будем живы, будут новые методы защиты. Так вот наша задача - оперативно адаптироваться под изменяющийся мир. И возможность самостоятельного залива прошивки (.hex) по несложной инструкции - выход.

Вы уж совсем хотите интегрировать "софт" и "железо", затирая м.д ними границы... но это не возможно, всегда будут определенные барьеры.

Автор: DarkMaster 4.2.2014, 0:11

Цитата
Не путайте прошивку с исходным кодом, кто сказал что исходный код будет открытым? Даже если файл прошивки (.hex) будет открытым, он нигде в системе не фигурирует, это бинарный код, понятный только микроконтроллеру, да и притом не каждому, и никаких зацепок к алгоритму, имея его, защита иметь не будет.

Тогда несколько непонятно в чем смысл шитья. Ты говоришь, что сам сможешь шить что хочешь. Ну сможешь, но ведь вся прелесть в существующей прошивке и в том, что ее можно модифицировать было бы. Если исходник закрытый, то либо писать с нуля, либо реверс инжиниринг. Более того, если ты выложишь свежую прошивку, то будет сразу же вагон девайсов-клонов у которых не понятно как менять ид, ведь код то закрыты. Не очень понятный момент... противоречие... Кстати первая же зацепка, как можно задетектить устройство улетает к тебе в личку.
Цитата
А смысл кому-то получить девайс с каким-то "левым" ID, который все равно не будет возможности изменить в дальнейшем?

А смысл его менять, если он рандомно сгенерированный и не палит явным образом девайс?
Цитата
Во-вторых, такой системы детекции еще нет и неизвестно, будет ли и когда..

По части инновы думаю, что это дело времени и относительно небольшого. Забугорный сегмент вряд ли дойдет до этого, а вот местные на ура.


А в чем собственно проблема в уникальных ид? Поратить 2 минуты на изменение циферок и перекомпиляции?

Автор: WKnight 4.2.2014, 8:58

Цитата
или отработало событие второго скрипта и.т.д

о нескольких Dll-ках и одном usb2kbd (нескольких пилотах и одном usb2kbd).
Есть вероятность, что каждый скрипт одного и того же пилота, грузит свою копию длл.
Цитата
чем больше кол-во активных копий DLL
самое правильное, это общий буфер у всех загруженных экземпляров длл с одинаковой парой ид. Тогда и с задержками мудрить не придется.
Цитата
При вызове функции из DLL она считает ini файл и поймет, с какой парой ей работать.
Тут подумать надо, при вызове функции или всетаки при загрузке длл. обращение к винту каждые 25мс не есть хорошо, поверь мне, я знаю smile.gif

Автор: usb2kbd 4.2.2014, 11:20

Цитата(DarkMaster @ 4.2.2014, 1:11) *

Тогда несколько непонятно в чем смысл шитья. Ты говоришь, что сам сможешь шить что хочешь. Ну сможешь, но ведь вся прелесть в существующей прошивке и в том, что ее можно модифицировать было бы. Если исходник закрытый, то либо писать с нуля, либо реверс инжиниринг. Более того, если ты выложишь свежую прошивку, то будет сразу же вагон девайсов-клонов у которых не понятно как менять ид, ведь код то закрыты. Не очень понятный момент... противоречие...


Как менять ID конечному пользователю при этом не имея доступ к исходному коду прошивки? Просто.
Он просто может заливать в девайс готовые прошивки .hex с разными id (их может быть много и даже очень). Где он их возьмет - думаю, ясно. Еще есть 2 варианта более перспективных, но более ресурсоемких - 1) онлайн-генерация прошивки. Например, вводишь на сайте желаемый id - сервак тестит его на валидность, сам компилит, и на выходе можно скачать .hex (нужен хостинг windows как я представляю) 2) создание урезанной версии компилятора или даже консольного приложения (программы) - чтоб рутину по компиляции и созданию .hex брала на себя без палева исходного кода. Править можно будет только ID в единственном файле конфигурации usb.

А смысл шитья конечным пользователем в том, что он все-таки как-никак должен иметь возможность обновлять firmware (обновления, смена того же id и т.д. - это кстати, одно из твоих пожеланий выше по топику). Это раз. Второй смысл шитья именно конечным юзером - что за любые изменения в девайсе, созданные не мной - я ответственности нести не буду, не хочу, не могу и не обязан по определению. Поэтому как говориться - хозяин-барин. Я думаю я понятно объяснил.. smile.gif

Цитата(DarkMaster @ 4.2.2014, 1:11) *

Кстати первая же зацепка, как можно задетектить устройство улетает к тебе в личку.


Если кидаете возможный детект, сразу кидайте идеи как реализовать в девайсе на рассмотрение. Я тоже могу, зная тонкости девайса, тонну зацепок придумать - мыслимых и не мыслимых на уровне атомов... smile.gif

Как я уже говорил выше, в принципе, ничего не возможного нет - это относится как с нападению, так в равной степени и к защите. Вопрос лишь во времени и желанием обеих сторон. И возможность адаптироваться друг к другу - вот основная суть вопроса. Вспомните, сколько раз тот же uopilot переписывался/дописывался с связи с изменениями окружающей среды?

Цитата(DarkMaster @ 4.2.2014, 1:11) *

А смысл его менять, если он рандомно сгенерированный и не палит явным образом девайс?

Любой id не палит девайс, пока его "например" выборочно не заблочили защиты (хотя пока это фантазия). Это одно. Второе - тут речь идет не только об id, а о возможности обновления firmware в целом.

Цитата(DarkMaster @ 4.2.2014, 1:11) *

А в чем собственно проблема в уникальных ид? Поратить 2 минуты на изменение циферок и перекомпиляции?

Причины выше.

Цитата(WKnight @ 4.2.2014, 9:58) *

Есть вероятность, что каждый скрипт одного и того же пилота, грузит свою копию длл.

так и есть. dll1.dll dll2.dll dll3.dll dllN.dll

Цитата(WKnight @ 4.2.2014, 9:58) *

самое правильное, это общий буфер у всех загруженных экземпляров длл с одинаковой парой ид. Тогда и с задержками мудрить не придется.

Это уже сверх тонкости программирования, я к сожалению не имею таких глубоких познаний в программировании и тем более в с++ (несколько месяцев опыта программирования в нем). Более того, буфер для нескольких загруженных Dll это по-моему уже прероготива уже ПО - тут уж Вам карты в руки. Пусть данные из ПО поступают в этот буфер, а буфер последовательно уже кидает все накопленное в одну DLL. С такой схемой даже мой кольцевой буфер FIFO в девайсе не понадобиться.

Цитата(WKnight @ 4.2.2014, 9:58) *

Тут подумать надо, при вызове функции или всетаки при загрузке длл. обращение к винту каждые 25мс не есть хорошо, поверь мне, я знаю smile.gif


Ну тут согласен на 100%. Постоянное "мигание" винта пусть даже на считывание - будет необоснованной потерей производительности. Подумаю (есть некоторые мысли уже сейчас) + предлагайте идеи.

Автор: DarkMaster 4.2.2014, 11:57

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

Автор: usb2kbd 4.2.2014, 12:09

Цитата(DarkMaster @ 4.2.2014, 12:57) *

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


Отписал в личку почему все это неэффективно.

Автор: WKnight 4.2.2014, 12:12

Цитата
Цитата(WKnight @ 4.2.2014, 9:58) Есть вероятность, что каждый скрипт одного и того же пилота, грузит свою копию длл. так и есть. dll1.dll dll2.dll dll3.dll dllN.dll
Нет, имелось ввиду одну и ту же.
Один пилот, одна длл, но каждый скрипт загружает в память отдельную копию этой длл.

Автор: usb2kbd 4.2.2014, 12:28

Цитата(WKnight @ 4.2.2014, 13:12) *

Нет, имелось ввиду одну и ту же.
Один пилот, одна длл, но каждый скрипт загружает в память отдельную копию этой длл.


Можно и так, но придется я так понял дорабатывать uopilot. По-моему, проще и понятнее схема - один uopilot на один скрипт и на одну Dll. Кроме того, все равно прийдется уже для Uopilot дописывать кольцевой буффер того же FIFO...
Но все же, по-моему проще грамотно настроить паузы. К тому же будет индикация на уровне девайса (писал выше).
В общем, на Ваше усмотрение уже - паузы никто не отменяет, их можно и не использовать если FIFO на уровне Uopilot будет.

Автор: DarkMaster 4.2.2014, 14:34

Цитата
Можно и так, но придется я так понял дорабатывать uopilot.

Если я правильно понял, то кнайт как раз говорит об обратном. Т.е. оно сейчас уже в режиме 1 вкладка = 1 копия длл.

Автор: usb2kbd 4.2.2014, 21:41

Цитата(DarkMaster @ 4.2.2014, 15:34) *

Если я правильно понял, то кнайт как раз говорит об обратном. Т.е. оно сейчас уже в режиме 1 вкладка = 1 копия длл.


Ну я вот, например, не представляю, каким образом реализовать такой буфер в пределах Dll-ки, да еще при этом чтоб учесть возможность ее функционирования если ПО грузит несколько копий Dll и чтоб это со всех копий вливалось в один буфер, который уже будет последовательно с заданными паузами кидать в девайс. К сожалению не мой уровень с++. На уровне железки - реализовано, регулировка паузами в скрипте - дело элементарного подбора "под себя". Двойная буферизация - слишком круто ИМХО, а главное, НЕ жизненно важно.

Автор: usb2kbd 6.2.2014, 10:30

Цитата(usb2kbd @ 4.2.2014, 22:41) *

Ну я вот, например, не представляю, каким образом реализовать такой буфер в пределах Dll-ки, да еще при этом чтоб учесть возможность ее функционирования если ПО грузит несколько копий Dll и чтоб это со всех копий вливалось в один буфер, который уже будет последовательно с заданными паузами кидать в девайс. К сожалению не мой уровень с++. На уровне железки - реализовано, регулировка паузами в скрипте - дело элементарного подбора "под себя". Двойная буферизация - слишком круто ИМХО, а главное, НЕ жизненно важно.


Приступаю к разработке возможности интеграции в девайс USB bootloader'а - BootloadHID. В теории должен влезть в АТmega8. Посмотрим...

Автор: usb2kbd 7.2.2014, 23:43

Цитата(usb2kbd @ 6.2.2014, 11:30) *

Приступаю к разработке возможности интеграции в девайс USB bootloader'а - BootloadHID. В теории должен влезть в АТmega8. Посмотрим...


В usb2kbd успешно интегрирован бутлоадер и проверен на Windows 7. Это позволит прошивать usb2kbd непосредственно через Usb-порт без использования специального устройства - программатора.

Автор: usb2kbd 8.3.2014, 1:20

Итак, почти все предложения по девайсу в пределах его и моих возможностей были максимально учтены и внедрены. Также были проведены все необходимые полевые испытания. Всю необходимую информацию можно будет почитать на сайте продукта usb2kbd.info в разделе "Новости".

Автор: usb2kbd 5.9.2014, 17:02

Добрый день! Новости от проекта usb2kbd:

03.08.2014. Разработана программа Usb2Kbd Remote. Программа позволяет управлять удаленным копьютером с подключенным Usb2Kbd через RealVnc. На сайте добавлен соответствующий раздел+видео.

05.09.2014. Для повышения гарантий проекта мною получен аттестат продавца в системе Webmoney.

Автор: usb2kbd 18.10.2014, 19:38

18.10.2014. Добавлено видео Usb2kbd и РуОфф.

youtu.be/TiP2QSaiaPE

Автор: usb2kbd 25.10.2014, 9:28

25.10.2014. В раздел сайта "Программное обеспечение" добавлен пример подгрузки DLL в Visual Basic

Автор: usb2kbd 2.11.2014, 12:56

02.11.2014. Добавлена возможность протестировать девайс на Вашем компьютере не выходя из дома! Подробнее на сайте продукта usb2kbd.info

Автор: usb2kbd 16.11.2014, 23:10

16.11.2014г. Добавлена статья "Usb2kbd и АСТЕР"

Автор: usb2kbd 30.11.2014, 13:08

30.11.2014. Для владельцев девайса версии v2.0 и выше появилась возможность самостоятельной генерации .hex файла прошивки. Подробнее - в разделе "Прошивка usb2kbd" навигации сайта. Сервис доступен после 19-00 МСК.

30.11.2014. Usb2kbd теперь в фабричной сборке на основе SMD-компонентов! Внешний вид - на главной странице сайта.

usb2kbd.info

Автор: usb2kbd 25.4.2015, 19:29

Добрый день! Важная информация! С 23.04.2015 г сайт продукта usb2kbd будет доступен по ссылке usb2kbd.ru
Также задавайте все вопросы на e-mail usb2kbd@gmail.com

Автор: Лайнейджер 25.8.2015, 1:46

rolleyes.gif Всем привет, выражаю благодарность создателю такой замечательной программы как uopilot!
К сожалению защита "фрост" блокирует полностью эмулируемые нажатия клавиш и мыши, поэтому я решился на покупку девайса usb2kbd. Проверил девайс в связке с пилотом, пилот определяет цвет пикселя в окнах и посылает желаемые команды уже на сам девайс и все отлично работает, даже нажатия мышью работают, пример скрипта на нажатие мышью в пилоте:
wait 2s
set #b1 mydll.Send (3,0,100,200,$VPID)
wait 250
set #b1 mydll.Send (3,1,100,200,$VPID)
set linedelay #linedelayLast
Проверил под запущенным фростом в активном окне работают все клавиши клавиатуры и мыши! cool.gif

Автор: allbro 21.9.2015, 14:23

Респект автору , может пойти дальше? Заливать проги эмуляции клавиатуры в обычные флешки или это невозможно?

Автор: DarkMaster 21.9.2015, 14:53

Невозможно. Это нужно шить именно железо.

Автор: usb2kbd 23.9.2015, 7:39

Цитата(allbro @ 21.9.2015, 15:23) *

Респект автору , может пойти дальше? Заливать проги эмуляции клавиатуры в обычные флешки или это невозможно?


В основе девайса должен лежать специальный микроконтроллер (в моем случае Atmel ATMEGA8), который и должен "прошиваться", ну и плюс должна соблюдаться схема сборки. Atmega8, конечно, может представляться и работать флешкой, но не наоборот smile.gif

Из перспективных целей проекта - неспешное внеднение LAN-интерфейса, чтоб девайсом можно было управлять дистанционно. Для чего? Очень часто бородатые сисадмины интересуются чем-то вроде бюджетного KVM-свитча, чтоб управлять дистанционно компьютером на уровне BIOS и т.д., т.е. без операционки. Как передавать изображение того, что делаешь на компе, в сеть в таком случае? Для начала можно придумать IP камеры, снимающие монитор в HD или что-то аналогичное.

Автор: usb2kbd 13.12.2015, 21:38

Добрый день! Новости проекта - Завершена разработка возможности управления девайсом через сеть (UDP).
Для геймеров - Теперь любимой игрой при помощи Usb2kbd_LAN можно управлять дистанционно (сеть на трейд, поменять цену и т.д). Как всегда, полная аппаратная эмуляция клавиатуры и мыши. Просмотр экрана - через любую программу удаленного просмотра (TeamViewer, Radmin и т.д.).
Для бородатых сисадминов - Usb2kbd_LAN поддерживает аппаратную эмуляцию клавиатуры и мыши даже еще до загрузки операционной системы. Т.е., при желании, можно дистанционно войти в BIOS удаленного компьютера, внести изменения. сохранить их и выйти. А как же видеть экран удаленного компьютера до загрузки операционной системы (ОС), спросите Вы? Тут уже площадка для полёта Вашей фантазии. От использования IP камеры HD разрешения с дистанционным просмотром, до снятии потока с видеокарты удаленного компьютера посредством Broadcast-платы и вещании этого потока в сеть.
Подробнее - на сайте продукта http://usb2kbd.ru

Автор: faf 12.3.2016, 12:14

у каво есть прошивка usb2kbd дайте сылку

Автор: Cockney 12.3.2016, 12:36

у разработчика же.

Автор: faf 12.3.2016, 12:51

Цитата(Cockney @ 12.3.2016, 14:36) *

у разработчика же.

он предлагает купить полный комплект за 1500, это не разумно

Автор: Cockney 12.3.2016, 13:25

Вполне логично, что автор этого девайса хочет получить денюжку за свои труды.

Автор: faf 12.3.2016, 13:39

Цитата(Cockney @ 12.3.2016, 15:25) *

Вполне логично, что автор этого девайса хочет получить денюжку за свои труды.

я не собираюсь осуждать автора, но покупать ещо 1 девайc когда у меня он уже есть, зачем?

Автор: Cockney 12.3.2016, 14:17

ты его купил или сделал сам?

если сам,то в начале теме автор давал какие-то ссылки,глянь их.

Автор: Cockney 12.3.2016, 14:27

вообще,если на оф сайте нет,то и тут искать не стоит.

Автор: faf 12.3.2016, 14:33

Цитата(Cockney @ 12.3.2016, 16:17) *

ты его купил или сделал сам?

если сам,то в начале теме автор давал какие-то ссылки,глянь их.

купил

Цитата(Cockney @ 12.3.2016, 16:27) *

вообще,если на оф сайте нет,то и тут искать не стоит.

прошивка есть у всех кто приобрел у афтора

Автор: Cockney 12.3.2016, 15:01

в чем тогда проблема написать автору?

Автор: faf 12.3.2016, 15:05

Цитата(Cockney @ 12.3.2016, 17:01) *

в чем тогда проблема написать автору?

в том что он не продает прошивку

Автор: DarkMaster 12.3.2016, 15:10

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

faf, как так получилось, что вы купили девайс, а прошивки у вас нет?

Автор: faf 12.3.2016, 15:19

Цитата(DarkMaster @ 12.3.2016, 17:10) *

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

faf, как так получилось, что вы купили девайс, а прошивки у вас нет?

вот с этого надо было начинать, я купил у другого продавца, так как у него отсутствовала нужная прошивка купил 2шт, после написал автору с просьбой продать прошивку получил отказ
обучающие видео для прошивки
https://www.youtube.com/watch?v=DoloyE_pGfY

Автор: DarkMaster 12.3.2016, 15:23

Вы уверены в оригинальности девайса и, что он изначально был куплен у автора?

Автор: faf 12.3.2016, 15:25

Цитата(DarkMaster @ 12.3.2016, 17:23) *

Вы уверены в оригинальности девайса и, что он изначально был куплен у автора?

уверен это исходный материал афтора

Автор: Cockney 12.3.2016, 15:27

а как это понимать?

я купил у
другого продавца, так как у него
отсутствовала нужная прошивка

Автор: faf 12.3.2016, 15:33

Цитата(Cockney @ 12.3.2016, 17:27) *

а как это понимать?

я купил у
другого продавца, так как у него
отсутствовала нужная прошивка

сам с паяльником он их не делает покупает у китайцев, заливает прошивку, продает
исходный материал легко найти http://ru.aliexpress.com/af/usbasp.html?ltype=wholesale&d=y&origin=n&isViewCP=y&catId=0&initiative_id=SB_20160312043104&SearchText=usbasp

Автор: DarkMaster 12.3.2016, 16:04

Первые версии были паяльником на коленке. Тем не менее суть вопроса была в другом. Если железка покупалась у него, то соответственно с его стороны должно быть предоставление прошивки. Если же железка была получена из третьего источника, то тут уже право автора продавать/не_продавать отдельно прошивку.

Автор: faf 12.3.2016, 16:19

блин такое странное ощущение что попал на форум копирастов

Автор: DarkMaster 12.3.2016, 16:27

дык ну а что вы хотите от меня? у меня нет прошивки. Точнее есть три штуки(одна не моя), которые с индивидуальным шифрованием и не подойдут к другим девайсам и которые прослушать защитой будет слишком проблематично, чтобы этим кто-то занимался. Причем это для другой ревизии плат и не понятно заработает ли оно вообще даже, если бы залили. Я не могу физически вам дать рабочую прошивку. Я целиком и полностью за то, что вам кто-нибудь дал бы свою прошивку и вы радовались жизни, но что я могу сделать? Или вы хотите, чтобы я написал какой не хороший автор, что не продает кусок? Ну по большому счету стоимостью девайса там можно пренебречь ибо копейки и денег стоит именно прошивка, поэтому он видимо и не хочет идти вам на встречу. Я это не очень понимаю, в частности зачем заниматься пересылкой ненужного хлама? Я бы на его месте выкинул из стоимости пересылку и железо и предложил бы прошивку. Разницы там было бы рублей 300. Тем не менее, что вы предлагаете сделать лично мне? Предлагайте, я всегда готов к диалогу.

Автор: faf 12.3.2016, 16:33

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

Автор: faf 25.3.2016, 18:17

плачу 1000р. за прошивку и плагин для работы с Uopilot

Автор: usb2kbd 28.3.2016, 20:37

Цитата(faf @ 12.3.2016, 16:33) *

сам с паяльником он их не делает покупает у китайцев, заливает прошивку, продает
исходный материал легко найти http://ru.aliexpress.com/af/usbasp.html?ltype=wholesale&d=y&origin=n&isViewCP=y&catId=0&initiative_id=SB_20160312043104&SearchText=usbasp



Зависть - один из смертных грехов

--------------------------------------------------------

Этот человек обратился ко мне с предложением продать отдельно прошивку (без девайса), на что я ответил, что отдельно прошивка не продаётся. В ответ я получил от неадеквата поток грязи, которые не хотел бы даже приводить здесь. Приведу выдержку из e-mail переписки:
-----------------------
------:
Добрый день, я восхищен вашим изобретением, но к сажелению не имею больших денег чтоб заплатить за ваш девайс, прошу продать прошивку отдельно для USBASP V2.0, постараюсь прошить его самостоятельно ��
Я:
Добрый день! К сожалению, отдельно прошивка не продаётся, да и прошить деайс Вы не сможете, т.к. там идет многофакторная прошивка в несколько этапов + конфигурация МК. Кроме того, исходный материал usbasp подвергается модификации, производится пропайка устройства и т. д.
------:
тогда вы ничего не потеряйте, если отдадите прошивку просто так, а я испытаю удачу с паяльником biggrin.gif
Я:
Юмор приветствуется и инициатива тоже )))) Если проживаете в России, то могу сделать для Вас скидку на девайс.
Есть одно НО - девайсов нет в наличии и есть очередь. Поступление - через неделю ориентир.
Вы резервируете девайс, как приходит - Вы оплачиваете (для Вас сделаю скидку до 1500 руб), я отправляю.
------:
ого это даже дороже чем было, пару дней назад, в очень щедры но спс я пас
исходная цена копейки, вы заливайте прошивку и накручивайте ценник на 1900%, спс китайцам чтобы мы без делали
Я:
PS - а то, что я отправляю за свой счет, тоже почему-то никто не считает... Это ж мелочи.
------:
ты такой ******, нам больше не очем разговаривать
иза таких как ты, случаются катаклизмы
страна в жопе, а ты поднимаеш цену только иза таво что доллар подорожал, ничего что зарплату них** не подняли?
Даже эскорт услуги не доражает Иза доллара
--------------------------------------------------------------------------------

Делайте выводы, уважаемые.

Автор: DarkMaster 28.3.2016, 21:45

Я сделал свои выводы несколько выше и остаюсь при них. Для меня суть проблемы бредовая. Хочет купить? Почему не продать? - о рисках знает, проблемы его. Не считает стоимости отправки? Имейлы что-ли платными для пересылки стали? Не смог завести? Ну так и девайсину еще докупит и доставку девайсины оплатит, а производитель получит 100% стоимости товара. Стоимость определяет производитель, но честно скажу, за такие деньги сейчас бы не взял - это бред. Человек энтузиаст и таких всегда уважаю, да и сам к этой касте отношусь. Сейчас мне приходится везти за несколько тысяч километров пару металлических обрезков потому, что в противном случае приобретая у себя в городе получаю неадекватную наценку (в моем случае 500%). У меня в таких случаях желание покупать у заламывающих цены резко стремится к нулю и я ищу любые способы купить у другого. Сейчас заплатив 2 стоимости товара за доставку и потратив кучу времени на переписку с производствами и заводами я получу свои обрезки дешевле, чем купил бы у себя в городе и я очень доволен, что не заплатил шараге с бредовыми наценками. Боюсь в данном случае произошло нечто аналогичное: одного сгубила жадность, второго принципы.

Автор: faf 29.3.2016, 8:12

Хотел поставить плюс дарк мастеру, но не нашол где smile.gif usb2kbd будь добрее, я не хочу никого обидеть, но цены явно завышены, кризис никак не влияет на затраты, а цену взял с неба

Автор: usb2kbd 29.3.2016, 8:16

Цитата(DarkMaster @ 28.3.2016, 22:45) *

Я сделал свои выводы несколько выше и остаюсь при них. Для меня суть проблемы бредовая. Хочет купить? Почему не продать? - о рисках знает, проблемы его. Не считает стоимости отправки? Имейлы что-ли платными для пересылки стали? Не смог завести? Ну так и девайсину еще докупит и доставку девайсины оплатит, а производитель получит 100% стоимости товара. Стоимость определяет производитель, но честно скажу, за такие деньги сейчас бы не взял - это бред. Человек энтузиаст и таких всегда уважаю, да и сам к этой касте отношусь. Сейчас мне приходится везти за несколько тысяч километров пару металлических обрезков потому, что в противном случае приобретая у себя в городе получаю неадекватную наценку (в моем случае 500%). У меня в таких случаях желание покупать у заламывающих цены резко стремится к нулю и я ищу любые способы купить у другого. Сейчас заплатив 2 стоимости товара за доставку и потратив кучу времени на переписку с производствами и заводами я получу свои обрезки дешевле, чем купил бы у себя в городе и я очень доволен, что не заплатил шараге с бредовыми наценками. Боюсь в данном случае произошло нечто аналогичное: одного сгубила жадность, второго принципы.


Ответ будет прост. Изначально любой человек, создающий какой-то продукт и потратив своё время, деньги, нервы и т.д на разработку какого-либо изобретения рассчитывает монетизировать его (это логично). Программисты, создав программу, защищают ее от несанкционированного использования и т.д. Это же самое реализовано и в девайсе.
Представьте себе, что каждый мог бы купить девайс на aliexpress, затем также на любом форуме кинул клич - "люди добрые, скиньте прошивку кому не жалко". Ему, конечно, кидают. Он прошивает и радуется жизни. Таких людей может быть много. Вопрос телезрителям: Сколько девайсов без защиты продаст после этого автор?

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

На счет цены можно поспорить - цена девайса на сегодня около 27 долл, из которых еще и моя доставка по России. Сейчас бензин залить на один раз 500 - 1000 руб, чтоб куда-то поехать. Поверьте, геймеры и ботоводы, например, которые продают игровую валюту потеряют намного больше от того, что их бот будет стоять, чем заплатить 27 долл и бот будет работать. Поверьте, там обороты не маленькие. И это, поверьте, адекватная цена за полгода работы, которые я потратил на разработку девайса. Пример из жизни - почему Вы не требуете у продавца в магазине бесплатно новую модель телефона, например, или еще что-то другое, а охотно платите? Чем девайс не товар? Чем комплектующие в мобиле не купленные на Aliexpress?

К тому же, всегда есть поговорка "Ну пойди и сделай сам, если не хочешь купить". Я сам любитель изобретать и точно также начал с нуля и рад. что смог довести девайс до конца, хотя были моменты, когда я хотел все бросить. Никто и не кого не заставляет приобретать товар, у каждого товара есть свой покупатель. А тролли и неадекваты были всегда и везде и лучший способ бороться с ними, как показала практика, это их игнорить....

Автор: faf 29.3.2016, 8:32

Ты на почту на машине едеш?
Я не ботовод, пилот нужен только чтоб АЦП работал

Автор: DarkMaster 29.3.2016, 10:33

Цитата
Ты на почту на машине едеш?

Не, он бензина на 500-1000 прямо в провод заливает видимо.

Цитата
Пример из жизни - почему Вы не требуете у продавца в магазине бесплатно новую модель телефона, например, или еще что-то другое, а охотно платите?

Ага. Можешь почитать выше, как я "охотно плачу" в таких случаях и кто получает деньги. Это мой выбор.

Цитата
ботоводы, например, которые продают игровую валюту потеряют намного больше от того, что их бот будет стоять, чем заплатить 27 долл и бот будет работать. Поверьте, там обороты не маленькие.

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

Автор: usb2kbd 29.3.2016, 19:08

Цитата(DarkMaster @ 29.3.2016, 11:33) *

Не, он бензина на 500-1000 прямо в провод заливает видимо.
Ага. Можешь почитать выше, как я "охотно плачу" в таких случаях и кто получает деньги. Это мой выбор.
Вы видимо либо бабки гребете лопатой и отправляете ящиками девайсы, либо просто не представляете эти стойки с машинами для ботоводства, причем девайс для промышленного ботоводства, как правило не предназначен из-за работы только в активном окне, а обеспечивать машинами тысячу акков даже при раскидывании через астер никто не будет(там до сих пор работает только на одно рабочее место с девайсом?).


Сарказм про бензин не уместен, это мрачная реальность.
Т.е. по Вашей логике, стоимость девайса должна быть равна = стоимости закупки исходного материала+стоимость отправки+стоимость моей дороги до почты? ))) Дальнейшую дискуссию не вижу смысла проводить. К сожалению, мир устроен так, что всегда были кто изобретает, и любители халявы по-русски. Так вот я отношусь к первым, я привык делать все сам и не просить у других. И я не гребу деньги лопатой и у меня нет таких оборотов, как Вы тут пытаетесь нарисовать. Попробуйте сделать что-то сами и Вы поймете цену своего труда, а не чужого, полученного нахаляву.

Если неадекват готов был тут выложить 1000 руб за прошивку, то цена, предложенная ему со скидкой в 1500 руб с готовым и настроенным железом, вызывает сомнения, что именно в 500 руб была загвоздка. Дело в элементарной человеческой зависти.

Еще раз повторю, что дальше я не намерен обсуждать этот пустой спор, буду писать только по теме (вопросы по девайсу, функционал и проч).

Автор: DarkMaster 29.3.2016, 19:55

Цитата
Дело в элементарной человеческой зависти.

Дело в элементарном "российском бизнесе" и "бизнесе глубинке" и в вашей оголделой жадности, когда продавец почему-то считает, что стоимость должна раз в 5-20 превышать затраты. И представьте себе не все считают это нормальным и согласны платить при таких заскоках. Не устраивает мнение? Ну дык сами его создаете. И не надо рассказывать о суровой реальности 1000 рублей на бензин для отправки прошивки. Всему есть цена, вы сейчас мне очень напоминаете продовашнкиных аудиокабеля за 10 000 долларов/метр, рассказывающих о том, как прекрасно заколосится рожь заиграют колонки за 500р из ашана, если их подключить именно этим кабелем. Не несите бред.
Цитата
И я не гребу деньги лопатой и у меня нет таких оборотов, как Вы тут пытаетесь нарисовать.

Это вы писали про то, как ботоводы зарабатывают вашим девайсом. Это либо дети малые которые продают голда на 1000р рублей в месяц, либо вы не представляете себе количество ботов на каждую машину, если человек занимается фармом в нормальном масштабе. Ваш девайс для этого не предназначен.
Цитата
Еще раз повторю, что дальше я не намерен обсуждать этот пустой спор, буду писать только по теме (вопросы по девайсу, функционал и проч).

Которые вы так же проигнорили. Видимо неудобный вопрос был...

usb2kbd, у вас сутки на то, чтобы исправить ваши цитаты с оскорбительным переименованием участников диалога.

Автор: usb2kbd 29.3.2016, 21:14

usb2kbd, у вас сутки на то, чтобы исправить ваши цитаты с оскорбительным переименованием участников диалога.
[/quote]

Этот человек не исправит написанное мне и я не собираюсь... Это было моё последнее сообщение на этом форуме. Всего хорошего и мира Вам!

Автор: DarkMaster 29.3.2016, 21:19

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

Автор: faf 30.3.2016, 0:45

Баюсь завтро в магазин пойти, продавец может включить личные расходы в стоймость товара laugh.gif
Usb2kbd ты просто с жиру бесишся, Иза отсутствия конкуренции, но это не надолго, найдутся умельцы каторые умейют копировать любые устройства

Автор: faf 22.5.2016, 5:37

<****> с обходом защиты, продается за 2$ на пол года, я же говорил вы переоценили свой девайс laugh.gif

Автор: yamenko 16.5.2019, 16:06

Добрый день.
Хотел бы еще раз поднять эту тему.

Вобщем идея такая:

Есть ардуино, которая определяется как HID устройство. (Atmega 32u4)
Она (ардуино) может слать данные как клавиатура. (Сделал себе физический ключ для входа в систему )

Программа UIPilot очень хорошо справляется с определением разных позиций на экране.
Но нужно отправить нажатие кнопки в СОМ порт, а ардуино их повторит.

Вот с вашей стороны мне необходима помощь в выборе СОМ порта и последующей отправке данных в ардуино.

С моей стороны готовый скетч для ардуино ну и доработка по возможности. (все отдам бесплатно )

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


Автор: DarkMaster 30.6.2019, 15:31

Вопрос собственно в чем? Как отправить данные в ком порт? Где-то писал на c++ плагин для создания сервер/клиент. Оно запускалось и даже принимало и посылало, но в каком оно виде я сейчас не вспомню, исходник могу выдать, хотя бы как пособие использовать.

В текущих реалиях проще использовать луа. Там открывается в виде простого файла порт.
Первое нагугленное (обратите внимание на Posix):
There are two kinds of line buffering going on here: one in the C library, which you can avoid using :read(1) like @Advert mentioned in the comments, and another one in the terminal driver itself. You can disable input line buffering in the terminal driver using the stty command line utility (stty -F /dev/ttyACM0 -icanon) or e.g. using luaposix (untested code):

Код

local p = require( "posix" )
local rserial = assert( io.open( "/dev/ttyACM0", "r" ) )
local fd = assert( p.fileno( rserial ) )

local function table_copy( t )
  local copy = {}
  for k,v in pairs( t ) do
    if type( v ) == "table" then
      copy[ k ] = table_copy( v )
    else
      copy[ k ] = v
    end
  end
  return copy
end

-- get current settings
local saved_tcattr = assert( p.tcgetattr( fd ) )
local raw_tcattr = table_copy( saved_tcattr )
-- clear ICANON bits from local flags using Lua 5.2 bit32 module
raw_tcattr.lflag = bit32.band( raw_tcattr.lflag, bit32.bnot( p.ICANON ) )

-- apply modified settings
assert( p.tcsetattr( fd, p.TCSANOW, raw_tcattr ) )
local c = rserial:read( 1 )
print( c )
-- restore default settings afterwards
p.tcsetattr( fd, p.TCSANOW, saved_tcattr )
rserial:close()


http://lua-users.org/wiki/SerialCommunication
виндовое

Автор: yamenko 22.2.2020, 23:35

Так...
Вобщем сделал вот такую связку arduino leonardo (mikro). Подойдет только та которая определяется как HID устройство.
Пилот делает все, что необходимо (ищет, определяет, считает и тд) и через LUA отправляет кнопку которую нужно нажать в COM порт где установлена arduino.
пока сделал только нажатие одной кнопок (аналогично send()). Планирую сделать еще управление мышью, спец кнопки...
Как и обещал - вот скечи:
В arduino

Код
#include <Keyboard.h>
char symbol;

void setup() {
  Serial.begin(9600);
  Keyboard.begin();
}

void loop() {
  if (Serial.available()) {
    symbol = Serial.read();
    Keyboard.print(symbol);
  }
}


В пилоте функция:
Код
--lua
local function sendKey (symbol)
    file = io.open("COM5","w")
    io.output(file)
    io.write(symbol)
    io.close(file)
end

COM5 - это тот порт в котором arduino воткнута
Чтобы отправить нужно выполнить
Код
sendKey("q")
нажмет кнопку "q"


PS Долго искал как отправить символы в порт... об этом нигде нет информации...

Автор: DarkMaster 27.2.2020, 21:56

Цитата
local function sendKey (symbol)
file = io.open("COM5","w")
io.output(file)
io.write(symbol)
io.close(file)
end

Можно упростить.
Код
local function sendKey (symbol)
    file = io.open("COM5","w")
    file:write(symbol)
    file:close(file)
end

К тому же стандартый вывод деграть не будете. Не уверен, что он не глоабальный, а выделяется под функцию. Соответственно можно было что-нибудь отломать.

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

Со своей стороны могу прилепить вашу тему (рекомендую создать новую).

Автор: yamenko 5.3.2020, 13:50

Ок, с темой понял smile.gif
постараюсь гайд написать.
когда по-свободнее станет допилю нажатие всех кнопок и задержки...

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)