![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
igor_cartman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.11.2007 Репутация: нет Всего: нет |
Доброе время суток ) Помогите разобраться вот в чем: мне надо сделать такой Java апликейшн, который полсе запуска будет отслеживать какие процессы запускаются: выводить в свое главное окно название процесса, если есть окно, то надо чтобы выводило Caption окна процесса, и состояние его при запуске и после закрытия. Например, если я запускаю notepad, то оно должна сразу же о нем это все вывести. Если это все не возможно узнать о процессе, то хотябы как можна часть из того все узнать ?
Это сообщение отредактировал(а) igor_cartman - 22.11.2007, 20:00 |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Это работа с WinAPI - скорее всего придется через JNI - пример использования - Что такое JNI - простейший пример.
|
|||
|
||||
igor_cartman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.11.2007 Репутация: нет Всего: нет |
Это получается что я буду писать почит всю логику, ну тоесть поиск процессов, поиск капшенов окон и все остальное с помощью Вин32 функций, а в Ява апликейшн буду передавать только Стринги, которые описывают все это. Тогда проще написать это сразу же на Вин32, без Яви... Но все же, может существует другой способ, без использования визова Вин32 функций....
|
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
Да можно проще, выполняем в отдельном потоке команду tasklist, затем читаем и парсим вывод:
-------------------- ![]() |
|||
|
||||
igor_cartman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.11.2007 Репутация: нет Всего: нет |
Спасибо большое, красивое решение, вот только из того, что мне нужно, из всего потока можно взять имя процесса...
Может есть какой то другой сервис в винде, откуда можна взять побольше информации(информация указана в топе темы) |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 6 Всего: 27 |
Можно, конечно, и зайца научить курить, можно и микроскопом гвозди забивать.
Все же мне кажется, что VC++ или Delphi здесь в самый раз, как бы я ни любил Java. -------------------- ![]() |
|||
|
||||
hamsterKSU |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 1 Всего: 11 |
потдерживаю. если ты хочешь кросплатформенное приложение то не получится - у тебя все равно будут зависимые части для получения свединия о процессах или еше что то. если занимаешься системным программирование. то С++ теде в руки. ну а если что то там узнать от системы и она виндовс то вообше C# - немного легче будет. если что то хардкорное то однозначно С/С++, ну или Delphi - накрайняк, для некороых задачь |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
fixxer, hamsterKSU, все так! Но не всегда это объяснишь преподователям в вузах, парадокс! Вот и приходится людям выкручиваться. У меня например не принимали работы на С++, мотивируя что нет .exe файла, хотя я русским по белому написал, что делал в Linux и для Linux... пришлось винду тогда ставить, чтобы сдать, а предмет назывался - ООП (я бы его тогда назвал С++ for Windows)...
По теме: с тогоже tasklist можно вытащить довольно много информации о процессах, если запускать его с параметрами (tasklist /v - например), в аське я об этом уже сказал топикстартеру и вроде бы там все получилось, думаю вскоре он выложит сюда решение ![]() -------------------- ![]() |
|||
|
||||
igor_cartman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.11.2007 Репутация: нет Всего: нет |
Да, уже все получилось, сделал так как и предложил Hidrag. Там надо было только еще настроить поток с такслиста на нужную кодировку. Но вот вчера поговорил с преподом, так он сказал что надо еще отслеживать ту ситуацию, что процесс может иметь много потоков, которые имеют окна, например как Експлорер - процесс один, а потоков может быть много, тобиш много может быть открыто окон, и вот нужно вывести Кепшин каждого из этих окон, а это надо уже брать информацию о потоке процесса...
Скорее всего без Вин32АПИ не обойтись (( Всем большое спасибо за помощь, особенно Hidrag’у ! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |