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

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

17.07.2014, 05:59. Показов 4015. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru