![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| rith2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 29.4.2008 Репутация: нет Всего: нет |
Приветствую.
Сразу скажу в Java слабоват. Как понял, KeyListener необходимо привязать к какому либо компоненту. В данный момент ковыряю приложение, которые бы отслеживало нажатия, находясь в фоновом режиме (Фоновый режим обеспечивается Java Service Wrapper), то есть графический интерфейс мне не нужен, а все примерчики в гугле привязывают KeyListener к какому-либо компоненту. Ткните плиз, где почитать про это можно, либо примерчик киньте. Спасибо! |
|||
|
||||
| ecologist |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
KeyListener привязывается к компоненту и тут увы ничего не сделать. Каждое нажатие клавиши посылается окну или компоненту в фокусе.
Надо бы подробнее написать,что конкретно надосделать. Может какие-то другеи решения помогут. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Получать все события от клавиатуры, можно так:
но для того, чтобы это работало надо: а) чтобы приложение имело хотя бы одно видимое окно б) чтобы это окно было в фокусе. Т.е. кейлогер без использования JNI на Java не напишешь. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
А нельзя ли по-простому
Результат вывода: C:\Docs>java KeyboardInput f Read: 102 Read: 13 Read: 10 d Read: 100 Read: 13 Read: 10 Read: 13 Read: 10 w Read: 119 Read: 13 Read: 10 d Read: 100 Read: 13 Read: 10 c Read: 99 Read: 13 Read: 10 То есть идея в том, что перехватывать ввод от потока System.in, затем интерпретировать полученные байты. Никакой листенер в данном случае не нужен, мне кажется. Это сообщение отредактировал(а) mbasil - 22.10.2008, 13:28 |
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
Тут я соврал ! В таком варианте требуется после каждого символа нажимать клавишу Enter !
Однако думаю можно попытаться перенаправить System.in |
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 2 Всего: 4 |
mbasil , а резве ето будет работать если консоь не под фокусом?
|
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
Не будет. Но не будет и в том случае, когда листенер в графике и приложение не фокусе.
Извините за тавтологию, в том то и фокус, что приложение получает от ОС сообщения о событиях, когда оно активно. В былые времена мы просто перехватывали прерывания от мыши или клавиатуры (минуя DOS) и писали прямо в видиопамять. Замечательные были времена (социализм, понимаете !). |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
mbasil
1. Твоё приложение перехватывает не нажатые клавиши, а то что пишется в стандартный поток ввода. И это две большие разницы. Попробуй в консоли выполнить:
2. Не оффтопь. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |