| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > куда прилепить слушатель чтобы всегда работал |
| Автор: xber9 12.4.2008, 10:51 |
| Есть слушатель клавиатуры который обрабаттывает ссочитаниея клавишь вопрос к чему его прикрепить чтобы он выполнялся если даже java-приложение не в фокусе и или свернуто |
| Автор: xber9 12.4.2008, 13:29 |
| ну а ты не можшь показать как это сделать ксласс слушателя уже написан на яве что делать дальше? |
| Автор: math64 12.4.2008, 23:07 |
| Можно обойтись без JNI. Написать на С/C++ или найти готовую программу, которая будет ловить нужную комбинацию клавиш и запускать твою Java-программу, а дальше всё можно сделать на Java. |
| Автор: powerOn 13.4.2008, 09:04 |
http://forum.java.sun.com/thread.jspa?threadID=632369 |
| Автор: xber9 13.4.2008, 12:08 | ||||
это яя частично понял есть пока 2 вопроса 1) как из c++кода получить dll 2) зачем в приведенном примере в мэин функции этот кусок кода
|
| Автор: powerOn 13.4.2008, 18:20 |
не проще ли запустить и посмотреть, нежели спросить? это задержка до нажатия Enter в консоли. |
| Автор: xber9 13.4.2008, 22:03 |
| а как dll сделать? |
| Автор: powerOn 13.4.2008, 23:04 |
вопрос не в этот раздел форума. в С/С++ спрашивай. |
| Автор: xber9 14.4.2008, 08:57 |
| если снова не туда -- прошу прощения но где взять библиотеку #include "jni.h" в том примере я что то не понял |
| Автор: math64 14.4.2008, 09:17 |
| <jdk>/include/jni.h |
| Автор: xber9 14.4.2008, 21:23 |
| СДЕЛАЛ ВСЕ КАК В ПРИМЕРЕ http://forum.java.sun.com/thread.jspa?threadID=632369 скомпилил библиотекоу dll на visual studio 2005 ТОЛЬКО ПРИШЛОСЬ ДОБАВИТЬ ПУСТОЙ stdafx.h А ТО РУГАЛСЯ дальше как в примере на писал System.loadLibrary("syshook"); он мне в ответ Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: D:\NetBeansProjects\KeyCods\syshook.dll: Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему что делать |
| Автор: xber9 15.4.2008, 13:46 |
| |
| Автор: ivg 15.4.2008, 21:55 | ||||
Для начала попробуйте заменить
на
есть подозрение что просто не находит её. Хотя, тогда ошибка должна быть другой. Что за JVM/JRE (версия, производитель)? Если не сработает, прикрепите вашу dll-ку. |
| Автор: xber9 16.4.2008, 12:06 |
| вот ошибка опять Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: D:\NetBeansProjects\KeyCods\syshook.dll: Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему at java.lang.ClassLoader$NativeLibrary.load(Native Method) использую jdk 6.1 с оболочкой NetBeans IDE 6.0 RC2 но у меня есть подозрения что я просто не правельно собрал dll (использовал visual studio 2005) если есть возможность помогите собрать мой длл приложен |
| Автор: xber9 17.4.2008, 17:44 |
| еще раз умоляю помогите |
| Автор: ivg 17.4.2008, 20:41 |
| Ваша .dll загружает MSVCR80D.DLL (показывает в depends). У меня на XP в PATH её нет, хотя с вашей dll работает. Видимо есть какие то хитрости. Предполагаю, что у вас именно эту dll-ку не может явно загрузить, поэтому вываливается такая ошибка. Что делать? Я предлагаю избавляться от зависимости от dll MS VC библиотеки времени исполнения. Т. е. код MS VC Runtime должен быть скомпонован статически. Как этого добиться, точно не могу сказать, я исключил из проекта stdafx.h и sdtafx.cpp, без них build отработал. Возможно нужно что то поменять ещё в настройках проекта. Но это лучше вам в форуме для MS VisualC++ спросить, какие настройки поставить, чтобы код библиотеки времени выполнения был скомпонован статически. На всякий случай прикладываю свой вариант dll. У ней нет зависимости от MSVCR80.DLL. Попробуйте с ней запустить, если пойдёт значит моё предположение недалеко от истины. |