Вобщем одна программа должна посылать сообщение о нажатии клавиши другой программе.
Что-то типа sendkey в Win.
Можно ли эмулировать нажатие клавиши?
Нет, в Колибри такого нет.. можно посылать сообщения о нажатии кнопок в приложении, и клавиши мыши. хотя то что ты сапрашиваешь мне пригодилось бы весьма и весьма..
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мне бы тоже пригодилось для моей программы "Экранная клавиатура". Хотелось бы конечно добавить новую функцию Kolibri, но не знаю как к этому отнесутся разработчики ядра. Все-таки, по-моему, эта функция будет влиять на безопасность системы.
В Колибри нет безопасности системы. Вообще.
я тоже хотел бы написать это приложение.. будет хорошо сочетаться с mousEmul)
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Тогда предлагаю добавить эту функцию. Прошу проголосовать.
Вот что-то вроде заготовки: http://narod.ru/disk/1262852000/ZKEY.BIN.html
Вот что-то вроде заготовки: http://narod.ru/disk/1262852000/ZKEY.BIN.html
Asper
А как она будет реализована ?
А как она будет реализована ?
Я не силен в асм, т.к. пишу в основном на С++, но общая идея такая:
1. В KEY_BUFF помещаем код нажатой клавиши
2. Посылаем через функцию proc send_event stdcall pid:dword, event:dword сообщение процессу о нажатии клавиши
Что-то вроде этого.
1. В KEY_BUFF помещаем код нажатой клавиши
2. Посылаем через функцию proc send_event stdcall pid:dword, event:dword сообщение процессу о нажатии клавиши
Что-то вроде этого.
это будет противоречить тому, что сообщения о нажатии (не горячих) клавиш получает только процесс с активным окном..
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Ну что ж, в таком случае от PID готов отказаться.
Функция будет посылать сообщение процессу с активным окном CURRENT_TASK.
Функция будет посылать сообщение процессу с активным окном CURRENT_TASK.
Из хаоса в космос
Спасибо Leency! То что надо! Скачал k_svn.803 и порывшись там немного действительно нашёл 72 функцию sys_sendwindowmsg. Документацию я к ней к сожалению не нашел (имеющаяся у меня дока заканчивается на 71 функции). Т.к. как я уже говорил в асме не силен, то хотелось бы чтобы кто-нибудь описал входные и выходные её параметры.
Не совсем понял, sendkey получается 72.2, sendbtn 72.3, а 72.1 зачем?
Code: Select all
sys_sendwindowmsg:
dec eax
jnz .ret
cmp ebx, 3
jz .sendbtn
cmp ebx, 2
jnz .ret
.sendkey:
...
jmp .ok
.overflow:
popf
mov dword [esp+36], 1
ret
.sendbtn:
...
.ok:
popf
and dword [esp+36], 0
.ret:
Asper
Там все функции описаны.
Плохо смотришь, смотри в 'svn/kernel/trunk/docs/sysfuncr.txt'Документацию я к ней к сожалению не нашел
Там все функции описаны.
Code: Select all
============================================
==== Функция 72 - послать сообщение окну. =====
============================================
--- Подфункция 1 - послать сообщение с параметром активному окну. ----
Параметры:
* eax = 72 - номер функции
* ebx = 1 - номер подфункции
* ecx = код события: 2 или 3
* edx = код клавиши для ecx=2, идентификатор кнопки для ecx=3
Возвращаемое значение:
* eax = 0 - успешно
* eax = 1 - буфер заполнен
Заглянул на огонёк
Спасибо Alver,теперь все стало ясно.
Вот, что получилось:
http://narod.ru/disk/1464301000/ZKEY%200.3.rar.html
и код, если кому интересно:
http://narod.ru/disk/1464377000/ZKEY%20 ... e.rar.html
Посылает скан коды нажатых(down) клавиш приложениям. Чтобы посылать сообщение нужному окну, нужно это окно активировать, а потом активировать ZKEY.
http://narod.ru/disk/1464301000/ZKEY%200.3.rar.html
и код, если кому интересно:
http://narod.ru/disk/1464377000/ZKEY%20 ... e.rar.html
Посылает скан коды нажатых(down) клавиш приложениям. Чтобы посылать сообщение нужному окну, нужно это окно активировать, а потом активировать ZKEY.
Who is online
Users browsing this forum: No registered users and 32 guests