Форум программистов, компьютерный форум, киберфорум
Программирование драйверов
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
4 / 4 / 4
Регистрация: 04.05.2014
Сообщений: 287

Можно ли отправлять через DeviceIOControl команды мышке?

17.07.2014, 05:59. Показов 3808. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос в том, можно ли эмулировать движения и клики мышью, без фильтр драйвера, и тем более без API функций? И желательно чтобы это была любая мышь, а не только PS/2 или USB. И в любом случае USB предпочтительней.

нашел IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER, смущает то что это только PS/2 правда даже если и так то все равно еще не понял, оно это или нет. структуру передаваемых данных не нашел (

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

куда копать? и есть ли у этого перспектива?)

Добавлено через 6 минут
но Parameters.DeviceIoControl.Type3InputBuf fer points to a client-allocated buffer that supplies the data to write to an i8042 port controller.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2014, 05:59
Ответы с готовыми решениями:

Используя программу, отправлять через интернет команды в кокой-либо форме на выполнение той или иной задачи
Здравствуйте! Дано : 1. Ноутбук, который работает дома и подключон к интернету 2. Телефон(Android), на котором стоит...

Можно ли отправлять сообщения через протокол ICQ
Можно ли отправлять сообщения через протокол ICQ?

Как можно принимать и отправлять почту через JSP?
Как можно принимать и отправлять почту через JSP? Желательно с вложениями

27
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
18.07.2014, 16:02
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Shakielpel Посмотреть сообщение
ну или хотя бы на С )
ida+hex-rays.
а вообще, вам жеж не точный алгоритм нужен, а так, посмотреть просто примерно, что за функции, как они в нулевое кольцо входят, и входят ли вообще... если честно, плохо себе представляю как вы сможете поработать в режиме ядра без хотябы минимальных знаний ассемблера... в конце концов, тот же stdcall от cdecl-а, чем отличается, я думаю, что это достаточно важный момент.
проблема в том, что ошибки могут быть сразу не видны, любое деление на 0, и синий экран. я уж молчу про всякие разные проблемы со стеком и памятью, когда вдруг через пару часов работы окажется, что что-то вы не туда записали, и какая-то программа затирается. поэтому, даже если у вас все заработает, это совсем не означает что оно будет работать везде и всегда, особенно если вы сами, без достаточно уверенной подготовки на низком уровне, будете писать этот код.
а если ж вы для себя пишите, то вам, наверное, интересно во всем разобраться, вот в таком случае, я смогу вам помочь, по скайпу, например. не по этому, так по другому вопросу, я просто сам занимаюсь чем-то подобным (автоматизация+тестирование ПО), и мне кажется, все же, многое могу рассказать, или, по крайней мере, подтолкнуть к идее решения вашей задачи.
0
4 / 4 / 4
Регистрация: 04.05.2014
Сообщений: 287
18.07.2014, 16:10  [ТС]
Byte D7 D6 D5 D4 D3 D2 D1 D0 Comment
1 Yover Xover Ysign Xsign Tag M R L X/Y overvlows and signs, buttons
2 X7 X6 X5 X4 X3 X2 X1 X0 X data byte
3 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Y data bytes
Вот что мне так и осталось непонятным
как в порт засунуть 3 байта последовательно?

WRITE_PORT_UCHAR((PUCHAR)0x64,0xd3);
while(READ_PORT_UCHAR((PUCHAR)0x64)&2);

WRITE_PORT_UCHAR((PUCHAR)0x60,(UCHAR)ska ncod);
тут отправляется команда запись в выходной буфер, и после получения сообщения о том, что оно готово принимать, отправляется фактически первый байт из верхней структуры, но в первом байте есть только инфа о состоянии кнопок мыши, а о движении во втором и третьем, НО как их туда послать? тут же следом что ли вызывать
WRITE_PORT_UCHAR((PUCHAR)0x60,(UCHAR)бай т2),WRITE_PORT_UCHAR((PUCHAR)0x60,(UCHAR )байт3)?
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
18.07.2014, 16:24
ну, там есть не только WRITE_CHAR, но и WRITE_SHORT, WRITE_DWORD (или как там его, короче 4 байта), и READ_* такие же. можете через них попробовать. или же в спецификации должно быть укзано, как обращаться к последовательности байтов.
0
4 / 4 / 4
Регистрация: 04.05.2014
Сообщений: 287
18.07.2014, 22:55  [ТС]
не, я полагаю что буфер рассчитан на прием 1 байта в 1 момент. т.е. отослать больше не проблема, проблема в том как отослать чтобы порт клавиатуры ps/2 это правильно понял

Добавлено через 5 часов 27 минут
разобрался с винИО, поглядел исходники и поправил стыренные исходники по его использованию. Понял кажется как слать 3 байта. Но осталась одна проблема - ничего не работает )

Добавлено через 45 минут
блииин, если записать что угодно в 64 или ничего не записать, то обратно читает 1С, если в 60 что угодно записать, то в 64 читаем 14, а в 60 всегда D3, что за бред, таких значений ни в одном справочнике нет ) и да пс/2 устройств реальных у меня нет вообще (
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
18.07.2014, 23:12
Цитата Сообщение от Shakielpel Посмотреть сообщение
да пс/2 устройств реальных у меня нет вообще
как раз таки, как я понимаю, вам и нужно его сделать. правда, не реальное, а типа виртуальное. раз уж вы с этой стороны решили зайти. и тогда, должно быть наоборот, это операционка должна обращаться к портам, которые вы там насоздаете.
хотя, может я и не прав. но в любом случае, у вас должен быть в первую очередь ман по hal винды, нежели по ps/2 или юсб, или еще чему-нибудь такому. поэтому, если честно, мне вообще непонятно, что вы там пытаетесь сделать

а то, что обращения к портам, физически к которым ничего не подключено, выдают странную ересь, это должно быть нормально. например, обращения к несуществующим ячейкам памяти тоже выдают чушь. так, кстати, определяют реальный объем оперативной памяти но это так, к слову
0
4 / 4 / 4
Регистрация: 04.05.2014
Сообщений: 287
18.07.2014, 23:23  [ТС]
как заставить комп думать, что пс/2 мышь подключена, если ее нет?
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
18.07.2014, 23:25
хм. ну не знаю. может, написать драйвер, не?
0
4 / 4 / 4
Регистрация: 04.05.2014
Сообщений: 287
18.07.2014, 23:28  [ТС]
приехали )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.07.2014, 23:28
Помогаю со студенческими работами здесь

Как Можно Автоматически Ежедневно Отправлять Файл Через Лотус?
Привет всем! У меня ежедневно создается xml файл в директорию С:/send, хочу чтобы автоматически этот файл ежедневно отправлялся через...

Через DeviceIoControl отправляется не то сообщение
Добрый день, уважаемые форумчане! Такой вопрос: /*заголовки*/ #define TOC_DATA_TRACK 0x04 HANDLE dir_handle; ...

ICS - Как отправлять команды с WsocketServer
кто нибудь пользовался этой библиотекой?хотел создать промежуточный сервер ,как отправлять команды с WsocketServer `а не очень разбираюсь с...

Отправка устройству информации через DeviceIoControl
Теперь пытаюсь разобраться с DeviceIoControl. В прошлой программе с помощью SetupDiGetDeviceInterfaceDetail нашел символьную ссылку на...

Можно ли подключить mac mini к монитору, клавиатуре и мышке не от Apple?
Можно ли подключить mac mini к монитору, клавиатуре и мышке не от Apple?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru