|
|
|
Hardware UO Pilot, Аппаратный UO Pilot |
|
|
usb2kbd |
8.9.2013, 10:35
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
Цитата(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
|
Novice
Сообщений: 89
Регистрация: 4.8.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.173
|
Цитата(Александр85 @ 25.6.2013, 10:26) Информация ценная, тут вопросов нет (IMG: style_emoticons/default/rolleyes.gif) Если есть желание опишите поподробнее что делали сами своими ручками. Добавите фото своего девайса и т. п... В дальнейшем у меня есть желание объединить аппаратный пилот (эмулятор клавиатуры) и кликер (эмулятор мыши) в одном устройстве. Если есть желание можете поучаствовать в проекте. (IMG: style_emoticons/default/smile.gif) Не буду я выкладывать по понятным причинам свое устройство-) (IMG: style_emoticons/default/tongue.gif) Разве что схему (внизу). По поводу того что дальше тут написано - вы в правильном направлении идете, вот только Uopilot при прошивке должен эмулировать полноценное исполнение скрипта, с быстрой загрузкой его в микроконтроллер без участия программатора, а не только нажатие определенных клавиш мыши или клавиатуры (IMG: style_emoticons/default/dry.gif) Иначе в противном случае ваше устройство ничем не отличается от готового продукта Oscar и Logitech, аля мышка x7 или клавиаутры серии G (например g13). Кстати в двух последних устройствах есть опция загрузки скрипта, единственный их недостаток - ограничение функционала из-за невозможности написания полноценного скрипта как в uopilot. Клава правда предусматривает скрипты на языке Lua, но его никто не знает, да и стоимость устройства не радует-) Да еще один нюанс, недавно был очень удивлен, когда в одной из игр(Universe online) все же обнаружили присутсвие этого девайса(за что естественно получил бан), это я к тому что при желании все можно обнаружить... . P.S. лично я в прошивку своего устройства смог внедрить только определенный сценарий нажатий клавиш, полноценной программы с быстрым редактированием кода "на лету" и дальнейшим его исполнением у меня к сожалению не получилось, ибо знаний таких нет.
Эскизы прикрепленных изображений
--------------------
Proffi?!
|
|
|
|
usb2kbd |
23.9.2013, 20:26
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
Цитата(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
|
Novice
Сообщений: 89
Регистрация: 4.8.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.173
|
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 окна то принятие пати и рес неизбежен.
--------------------
Proffi?!
|
|
|
|
usb2kbd |
22.1.2014, 1:24
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
И снова здравствуйте, дорогие друзья! Долгие месяцы неспешных разработок, дали положительный результат, чем я весьма горжусь (IMG: style_emoticons/default/smile.gif) Ны выходе получилось очень интересное USB-устройство (usb2kbd), которое (цитирую c сайта продукта) при подключении в USB-порт компьютера представляется системе Windows реальной клавиатурой+мышью и, что весьма важно, ничем не отличается от обычных USB клавиатуры и мыши, при этом устойство не требует от Вас установки никаких драйверов! А что еще более важно, устройство для работы требует единственный USB-порт! Особенности харварного эмулятора клавиатуры и мыши Usb2kbd: - до 3-х одновременных нажатий клавиш клавиатуры, включая все управляющие и функциональные клавиши; - перемещение мыши в заданные координаты; - нажатие кнопок мыши (левая, правая, средняя). Как посылать в Usb2kbd управляющие сигналы с компьютера? Теперь это стало возможно благодаря универсальной библиотеке DLL - это файл, который можно динамически использовать в любом языке программирования. Ваша программа в простейшем случае обращается к DLL библиотеке - дает ей определенную команду, а уже Dll в свою очередь отправляет специальный пакет в устройство usb2kbd, которое незамедлительно выполняет эту команду (например, нажимает клавишу клавиатуры/мыши так, как будто ее нажали Вы руками!). C описанием, преимуществами, схемой работы, примерами можно ознакомиться на сайте продукта usb2kbd.info.
|
|
|
|
usb2kbd |
22.1.2014, 11:33
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
Цитата(DarkMaster @ 22.1.2014, 8:57) дллку где брать? к пилоту прикручивать будем? (IMG: style_emoticons/default/smile.gif) Dll доступна для скачивания на сайте usb2kbd.info в разделе "Программное обеспечение". В архиве сама Dll (для динамической подгрузки) + .lib - файл - если вдруг найдутся фанаты статической подгрузки библиотеки. Также рекомендую ознакомиться со всеми разделами сайта - я там постарался максимально все описать. (есть конкретные примеры использования).
|
|
|
|
usb2kbd |
25.1.2014, 1:12
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
Цитата(DarkMaster @ 23.1.2014, 1:25) Чиркнул в скайп. Не уверен в разумности диалога на форуме по поводу прикручивания дллки. Это не продуктивно (IMG: style_emoticons/default/smile.gif) Прошу прощения за задержку, но курил методу прикручивания плагина к UO pilot и решая нетривиальную задачу преобразования строкового ParamStruct->ParamString в нужные мне переменные - аргументы функции (IMG: style_emoticons/default/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:38
|
Модератор UOPilot
Сообщений: 9.570
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28534
Пользователь №: 11.279
|
Дальше список мыслей. Это не расстрел, а просто мнение/пожелания, которые, на мой взглад, могут немного облагородить все это дело. Цитата если передано менее 4 аргументов (больше можно можно, меньше - ни ни лучше сразу привести в норм вид, т.к. очень часто придется дописывать нули. Цитата "Arguments < 4! Usage Sum (a1, a2, a3, a4)!" "Send!" "Not connected!" Было бы правильнее использовать числовые коды. С ними проще работать в самих скриптах. Вместо: if $a = "send!" гораздо правильнее было бы использовать if #a > 0 Цитата отжать все клавиши мыши по отдельности не отжимаются? Или цель была уложиться в байт? еще пара заметок 1) На сайте нет раздела загрузки, а в описаниях ссылки практически не заметны. 2) Скачал сканкоды, ворд не открыл слету. Проще найти, чем пытаться понять, что не так с файлом. Тхт не достаточно? (IMG: style_emoticons/default/wink.gif) 3) Неплохо было бы сделать map в dll'ке из соответствия кодов клавиш и их названий. 4) Расширенные коды клавиш не поддерживаются? // Ну и sum... выглядит очень палевно... Ну очень) Сообщение отредактировал DarkMaster - 25.1.2014, 2:33
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
usb2kbd |
25.1.2014, 12:10
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
Цитата 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) Скачал сканкоды, ворд не открыл слету. Проще найти, чем пытаться понять, что не так с файлом. Тхт не достаточно? (IMG: style_emoticons/default/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 создавалось именно чтоб не палиться (IMG: style_emoticons/default/smile.gif) Принимаю добровольные пожертвования на развитие проекта в размере 1200 рублей (300 грн). Z425120780187 R305005172556 U263703834456 В назначении платежа нужно указать кол-во девайсов, которые бы Вы хотели иметь, Ваши ФИО полностью, № Вашего моб телефона, а также город и номер (или адрес) отделения «Новой Почты», где Вы находитесь. Как-то так. Спрашивайте )
|
|
|
|
DarkMaster |
25.1.2014, 17:44
|
Модератор UOPilot
Сообщений: 9.570
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28534
Пользователь №: 11.279
|
Цитата Функция возвращает - 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/...in/keyboard.htmЕще такой вопрос у меня есть немного не по теме, но все же. У меня на клавиатуре некоторые клавиши работают только на ps/2, а вот уже на usb чтобы заработали надо дрова держать загруженными в памяти. WTF? Это кстати кусок расширенных. Цитата о поводу map'a клавиш - приму для работы таблицу на usb2kbd@gmail.com со штатными клавишами Uopilot'a - рассмотрю. Штатные или не штатные пилота - оно не имеет значения. Смысл фактически иметь возможность писать саму клавишу а не ее код. Самый тупой вариант, как это можно сделать - запихать таблицу скан кодов из xls в map и успокоиться на этом. Эксель кстати очень удобен для создания map'ов - вся типовая писанина заменяется растягиванием. Мапом не нужно только полностью заменять возможность числовой посылки кода. Пилот сейчас на этом спотыкается сильно. Простой вариант - он всегда удобнее, надо что-то хардкорное, тогда идем за кодами. Цитата Принимаю добровольные пожертвования на развитие проекта в размере 1200 рублей (300 грн).
Это фиксированный размер в не зависимости от количества или как или что? Я просто не совсем готов за одну штуку отвалить 1200... Сообщение отредактировал DarkMaster - 25.1.2014, 17:49
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
usb2kbd |
25.1.2014, 19:28
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
Цитата(DarkMaster @ 25.1.2014, 18:44) А успех то что вернет?
0 - устройство не подключено и соотв пакет никуда не пошел, 1 - девайс подключен и, значит, пакет успешно ушел в девайс, а вот девайс, к сожалению ответить в функцию никак не может, по крайней мере, я такой технологией не владею. Он будет "занят" ответом в хост нажатиями. Поэтому предполагается, если девайс подключен и виден в системе, значит он отработает пакет. Просто нужно учесть минимальные рандомные "человеческие" паузы м.д нажатиями, а не отсылать 100500 нажатий сразу (IMG: style_emoticons/default/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 на уровне новичка... (IMG: style_emoticons/default/smile.gif) Сейчас я рассматриваю вариант выкладывания сорсов Dll-ки на Borland C++ Builder (в т.ч. доработанной для UOpilot), чтоб Вы его могли править как хотите и адаптировали его с учетом требований и пожеланий форумчан для нужд UOPilot (с условием неизменности моего кода), т.к. уверен, у Вас это выйдет лучше меня и, однозначно, оптимальнее. Цитата(DarkMaster @ 25.1.2014, 18:44) Это фиксированный размер в не зависимости от количества или как или что? Я просто не совсем готов за одну штуку отвалить 1200...
Торг всегда уместен... Скажем, так - Специальные "пилотные" условия для администрации портала UOPilot - Заинтересованное лицо "помогает" проекту на развитие в размере 200грн/800р. (себестоимость + время на сборку/пайку + премирование идейности) и получает по "Новой Почте"+пересылка за счет получателя (Украина) или Укрпочтой (Россия) "материал" по проекту в размере 1шт. Я думаю, это в первую очередь, касается администрации портала, так сказать, "пощупать", "потестить на деле". По сути дела это та же стоимость средней мыши + клавы в магазине (не самые навороченные, типа монстров Logitech, о которых как-то кто-то упоминал выше). Дешевле уже некуда, бо смысла нет тратить на все это силы и разум. Все, так сказать, ХендМейд, паяльник и мозги. (IMG: style_emoticons/default/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
|
Модератор UOPilot
Сообщений: 9.570
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28534
Пользователь №: 11.279
|
Цитата С таким не сталкивался, но опять же ремапп программный на удобноваримую для 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]. Это позволяет строкой обращаться к числу и не иметь проблем с типами данных. Сообщение отредактировал DarkMaster - 25.1.2014, 20:14
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
usb2kbd |
25.1.2014, 21:47
|
Neophyte
Сообщений: 48
Регистрация: 31.8.2013 Группа: Пользователи Наличность: 0
Пользователь №: 16.302
|
Цитата(DarkMaster @ 25.1.2014, 21:12) По количеству надо только сориентироваться. 2-4 штуки будет.
В данный момент имеется 3 "материала по проекту". Остальное, если необходимо, смогу дособрать в кротчайшие сроки. Как найдутся желающие, предварительно шлите заказ на мыло, я в ответ сообщу о готовности. А далее по схеме выше. Что касается Dll-ки, пока оставляю как есть. В принципе, основные функции она выполняет - можно будет тестить, остальное косметика. Из приятного: планирую отснять и добавить видео "Usb2kbd и UoPilot".
|
|
|
|
|
|
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0
|
|