Page 1 of 8

MOUSEMUL - эмуляция мыши

Posted: Tue Aug 28, 2007 9:12 pm
by Gluk
Следует ли реализовать эмуляцию мыши правой группой цифровых клавиш на клавиатуре при включенном NumLock? лично я считаю что это было бы весьма оправданно.. (клавиши + и 0 по причине их увеличенного размера можно эмулировать как левую и правую клавиши мыши соответственно, цифру 5 - как центральную, дробь и звездочку - как колесико мыши) возможных направлений (8) на мой взгляд вполне достаточно. Как вам идея? Мне кажется это решается путем изменения "мышиных" системных функций, в виде дополнительной проверки нажатости NumLock и соответственных клавиш.

Posted: Tue Aug 28, 2007 10:11 pm
by Sаsh
Мышь уже можно эмулировать при помощи клавы. Если не ошибаюсь, то alt+стрелка - движение, alt+enter - левый клик. Если очень нужно управлять именно с цифровой клавиатуры, то смотришь существующий код, отвечающий за обработку этих сочетаний, и делаешь по аналогии, чтобы обрабатывались ещё и цифровые стрелки без alt. У цифровых стрелок и у обычных стрелок разные скан коды. Их можно выяснить экспериментально.

Posted: Tue Aug 28, 2007 10:19 pm
by Freeman
Удобные для пользователя программы должны управляться только с помощью клавиатуры. Проголосовал за "нет смысла".

Posted: Tue Aug 28, 2007 10:33 pm
by Gluk
Sаsh
я только что ребутнулся в Колибри, что на ядре 608, ничего подобного не обнаружил, увы. да к тому же четырех направлений и одной клавиши маловато
Всем
я понимаю, что тем у кого работает мышка это не очень нужно =) однако по соотношению польза+поенциальная польза/трудность реализации+время реализации это хорошая идея.. несмотря на то что я утверждаю что реализуется это не очень сложно и не очень долго, сам за это не берусь, ибо в Колибри понимаю, но вот в ядре ея - нуль =) в общем не справлюсь (уже пытался туда лазать)..

Posted: Tue Aug 28, 2007 10:37 pm
by Gluk
Freeman
согласен с тобой, это был бы очень хороший вариант.. однако с неработающей мышью ни одну программу (кроме CPU) запустить невозможно =)
тогда следует реализовать фокус на иконках, и меню, вылазающее по кнопке "start" на клаве(где логотип виндов изображен), а также фокус на элементах этого самого меню.. считайте это еще одним вариантом голосования =)

Posted: Tue Aug 28, 2007 10:39 pm
by Gluk
не могли бы голосующие аргументировать свои голоса?.. а то мнений много, а вариантов ответа всего 4

Posted: Wed Aug 29, 2007 7:36 am
by Mario79
Gluk
я только что ребутнулся в Колибри, что на ядре 608, ничего подобного не обнаружил,
Эта возможность потерлась при реализации параллельной поддержки нескольких мышей. Старый алгоритм нереализуем в новой модели обработки мышей.
и меню, вылазающее по кнопке "start" на клаве
Почитай документацию для начала, файл Hot_Keys.txt:
Следующие "горячие" комбинации клавиш используются в системе:
(Нумерация по времени появления в системе)
1) Ctrl + Alt + Del запуск приложения CPU (диспетчер процессов), это единственная комбинация, поддержанная на уровне ядра, все остальное реализовано за счет приложения @PANEL.
2) Ctrl + Shift - переключение раскладки клавиатуры.
3) Alt + Win - запуск приложения MENU.
4) Alt + Ctrl + F12 - запуск приложения END.
5) Alt + F4 - завершение активного приложения.
6) Alt + Tab - переключение на следующее (в оконном стеке) окно
7) Alt + Shift + Tab - переключение на предыдущее (в оконном стеке) окно
Похоже, действительно документацию мы программисты пишем исключительно для себя, раз ее никто не читает...

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

Posted: Wed Aug 29, 2007 10:37 am
by k@sTIg@r
Реально.
1. нужно вынести драйвер клавиатуры из ядра или дать возможность подменять ядерный драйвер внешним.
2. дополнить текущий драйвер, который будет управлять мышью (в ядре экспортируемая proc set_mouse_data stdcall, BtnState:dword, XMoving:dword, YMoving:dword, VScroll:dword, HScroll:dword) и сохранить как новый
3. теперь загружаешь свой драйвер и ты можешь управлять мышой

Но зачем? хотя лишним не будет....

Posted: Wed Aug 29, 2007 12:59 pm
by Gluk
Mario79
Эмуляцию мыши вполне можно реализовать на уровне приложения
перед сном мне пришло это в голову) тогда давайте я этим займусь сегодня вечером (хотя ИМХО на уровне ядра было бы правильнее), надеюсь никто не будет против?) // вся документация была мною некогда прочитана, но жернова жизни измололи этот участок моей памяти) однако насколько я помню, навигация по меню без мыши все-таки не работает?.. впрочем, не сегодня - завтра этот вопрос должен отпасть, если у меня все получится)

Posted: Wed Aug 29, 2007 1:38 pm
by Mario79
Gluk
однако насколько я помню, навигация по меню без мыши все-таки не работает?
Нет, все работает, причем давно.

Posted: Wed Aug 29, 2007 2:52 pm
by Gluk
Mario79
Нет, все работает, причем давно.
да, я уже проверил и убедился в этом =)

Posted: Thu Aug 30, 2007 4:41 pm
by Gluk
ааа.. я написал эмулятор, но чуть ошибся в расчетах, гад повесил систему, все труды насмарку =(
2) положение мыши то я допустим сделаю на уровне приложения.. а что с кликами?
3) приложенгие окна не имеет, но при работе рисует подозрительную полосочку слева от экрана.. зато индикатор работы удобный =)

Posted: Thu Aug 30, 2007 4:41 pm
by Gluk
(рисует самовольно..)

Posted: Thu Aug 30, 2007 4:48 pm
by Gluk
Sаsh
У цифровых стрелок и у обычных стрелок разные скан коды.
а вот и нет :P

Posted: Thu Aug 30, 2007 4:49 pm
by Gluk
только стрелки еще ext отправляют, цифры одинаковые..