|
3 / 3 / 1
Регистрация: 31.07.2016
Сообщений: 43
|
|
Получить Title активного окна из Java31.07.2016, 06:22. Показов 4303. Ответов 8
Метки нет (Все метки)
Здравствуйте, нужно из java приложения получить заголовок активного в данный момент окна - любого, т.е. не из этого же java приложения.
Ну к примеру пользователь работает с блокнотом - программа должна получить "Безымянный - Блокнот" итд. Т.е. не нужно получить список всех процессов, нужно получить заголовок активного окна, с которым работает пользователь. Желательно конечно чтобы код был кросплатформенный, windows и linux но возможно ли такое не знаю. Как крайний вариант думаю написать dll на Delphi - и подгружать его через jni - но это будет уже не кросплатформенность.
0
|
|
| 31.07.2016, 06:22 | |
|
Ответы с готовыми решениями:
8
Скриншот активного окна Выбор активного окна и его полей Как взять title, process, process id активного окна? |
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 31.07.2016, 08:39 | ||
|
0
|
||
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|
| 04.08.2016, 08:43 | |
|
0
|
|
|
3 / 3 / 1
Регистрация: 31.07.2016
Сообщений: 43
|
|
| 04.08.2016, 21:57 [ТС] | |
|
Да в принципе тот почти таким же кодом на win api, я уже написал dllку.
Теперь немного другой вопрос интересует - как теперь сделать dllку(или как они там называются) чтобы она выполняла те же функции, но уже на Linux ?
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 05.08.2016, 00:50 | |
|
Javagif, этот вопрос следует задать в другом разделе.
0
|
|
|
3 / 3 / 1
Регистрация: 31.07.2016
Сообщений: 43
|
|||||||||||
| 12.08.2016, 04:08 [ТС] | |||||||||||
|
Что-то не могу понять из-за чего ошибка возникает.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/sun/jna/Library Подскажите, вроде всё правильно, путь до dll корректный Если грузить так System.load("c:/Java/Projects/JavaSwing/dll/WinMon.dll"); - то грузит, а через Native.loadLibrary - нет
Если надо, то вот полный список ошибок. Кажется программе не получается загрузить библиотеку по указанному пути, но путь правильный. System.load("c:/Java/Projects/JavaSwing/dll/WinMon.dll"); - отрабатывает нормально C:\Java\Projects\JavaSwing\dll - System.out.println(System.getProperty("j ava.library.path")); Ошибки Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/sun/jna/Library at java.lang.ClassLoader.defineClass1(Nativ e Method) at java.lang.ClassLoader.defineClass(Unknow n Source) at java.security.SecureClassLoader.defineCl ass(Unknown Source) at java.net.URLClassLoader.defineClass(Unkn own Source) at java.net.URLClassLoader.access$100(Unkno wn Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(Unknow n Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadCla ss(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at com.codebind.App$1.actionPerformed(App.j ava:80) at javax.swing.AbstractButton.fireActionPer formed(Unknown Source) at javax.swing.AbstractButton$Handler.actio nPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActio nPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPresse d(Unknown Source) at javax.swing.plaf.basic.BasicButtonListen er.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unk nown Source) at javax.swing.JComponent.processMouseEvent (Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unk nown Source) at java.awt.Container.dispatchEventImpl(Unk nown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetM ouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMo useEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchE vent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unk nown Source) at java.awt.Window.dispatchEventImpl(Unknow n Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Un known Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$JavaSecur ityAccessImpl.doIntersectionPrivilege(Un known Source) at java.security.ProtectionDomain$JavaSecur ityAccessImpl.doIntersectionPrivilege(Un known Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$JavaSecur ityAccessImpl.doIntersectionPrivilege(Un known Source) at java.awt.EventQueue.dispatchEvent(Unknow n Source) at java.awt.EventDispatchThread.pumpOneEven tForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsF orFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsF orHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents( Unknown Source) at java.awt.EventDispatchThread.pumpEvents( Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: com.sun.jna.Library at java.net.URLClassLoader.findClass(Unknow n Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadCla ss(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 49 more Добавлено через 45 минут Блин, даже из этого примера, со стандартным winApi - выходит та же ошибка
at com.codebind.App$User32DLL.<clinit>(App. java:80) at com.codebind.App$1.actionPerformed(App.j ava:97) at javax.swing.AbstractButton.fireActionPer formed(Unknown Source) at javax.swing.AbstractButton$Handler.actio nPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActio nPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPresse d(Unknown Source) at javax.swing.plaf.basic.BasicButtonListen er.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unk nown Source) at javax.swing.JComponent.processMouseEvent (Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unk nown Source) at java.awt.Container.dispatchEventImpl(Unk nown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetM ouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMo useEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchE vent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unk nown Source) at java.awt.Window.dispatchEventImpl(Unknow n Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Un known Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$JavaSecur ityAccessImpl.doIntersectionPrivilege(Un known Source) at java.security.ProtectionDomain$JavaSecur ityAccessImpl.doIntersectionPrivilege(Un known Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$JavaSecur ityAccessImpl.doIntersectionPrivilege(Un known Source) at java.awt.EventQueue.dispatchEvent(Unknow n Source) at java.awt.EventDispatchThread.pumpOneEven tForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsF orFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsF orHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents( Unknown Source) at java.awt.EventDispatchThread.pumpEvents( Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: com.sun.jna.Native at java.net.URLClassLoader.findClass(Unknow n Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadCla ss(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 38 more Подскажите, может как то надо Intellij Idea правильно настроить чтобы работала с JNI ?
0
|
|||||||||||
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||
| 13.08.2016, 16:01 | ||
0
|
||
|
3 / 3 / 1
Регистрация: 31.07.2016
Сообщений: 43
|
||
| 13.08.2016, 17:08 [ТС] | ||
import com.sun.jna.Native; - Такая строка в коде есть
0
|
||
|
3 / 3 / 1
Регистрация: 31.07.2016
Сообщений: 43
|
|
| 21.08.2016, 03:54 [ТС] | |
|
Вобщем разобрался как подключить jna - оказывается надо было отдельные библиотеки качнуть и добавить в проект.
Пришлось также функцию в dll переписать чтобы она возвращала строку не как String, а как Pchar - иначе java программа зависала. Теперь не зависает, строка получается, НО если функция возвращает строку на кириллице, то кирилица выходит с кракозябрами - ������. Вопрос как сделать чтобы и килилица в java нормально выводилась ? Ещё - как вернуть из dll - массив строк ? или объект(экземпляр схожего класса - например TStringList - как в Delphi) ?
0
|
|
| 21.08.2016, 03:54 | |
|
Помогаю со студенческими работами здесь
9
Получить заголовок активного окна Получить заголовок активного окна C++ Получить HWND активного дочернего окна Получить заголовок активного окна (Ubuntu)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc
О Господи, Вечный, Ты . . .
Я помоги, Бесконечный. . .
Я прошу Ты. . .
Я погибаю, спаси. . .
Я прошу Тебя Вечный. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|