Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 24.02.2015
Сообщений: 6

Проверка имени процесса

25.02.2015, 00:03. Показов 1429. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я тут новичек и собственно в яве не очень силен.
У меня есть код, он берет имена процессов из массива и при нахождении нужного имени закрывает программу.
Но, суть в том, что мне нужно сделать проверку не части имени, а всего имени. Тоесть, если процесс cmd указан в массиве и при его нахождении программа должна закрыватся, то если есть процесс hkcmd то программа тоже закрывается ._.

Settigns.java
Java
1
public static final String[] p = {"wireshark", "cheatengine", "cmd.exe", "HttpAnalyzer"};  //Список запрещенных процессов.
GuardUtils.java
Java
1
2
3
4
5
6
7
8
9
10
    public static void check() {
        if(GuardUtils.checkProcesses(Settings.p)) {
            try{
                Class<?> af = Class.forName("java.lang.Shutdown");
                Method m = af.getDeclaredMethod("halt0", int.class);
                m.setAccessible(true);
                m.invoke(null, 1);
            } catch (Exception e) { }
        }
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
        public static boolean checkProcesses(String[] onlineData)
        {
            if (onlineData == null) return false;
            
            try
            {
                int platform = BaseUtils.getPlatform();
                String line; Process p;
                List<String> processes = new ArrayList<>();
                
                if (platform == 2) p = Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe /v /fo list");
                else p = Runtime.getRuntime().exec("ps -e");
                
                try (BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())))
                {
                    
                    while ((line = input.readLine()) != null)
                    {
                        processes.add(line.toLowerCase());
                    }
                    
                }
                
                for(String process : processes)
                {
                    for(String Data : onlineData)
                    {
                        if(process.contains(Data.toLowerCase()))
                        {
                            return true;
                        }
                    }
                }
                
            } catch (Exception e) {}
            
            return false;
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2015, 00:03
Ответы с готовыми решениями:

Проверка имени процесса
Здравствуйте, у меня есть код: public static boolean checkProcesses(String onlineData) { if (onlineData == null) return...

Проверка наличия запущенного процесса cmd.exe по имени его окна
Очень нужна ваша помощь! Суть: необходимо в БАТнике провести проверку на предмет запущенного приложения по имени окна командной строки,...

Как узнать id процесса по имени процесса?
Как узнать id процесса по имени процесса? Например ищем notepad.exe и возвращается id этого процесса. Пол гугла обшарил.

5
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
25.02.2015, 01:51
Java
1
if(process.contains(Data.toLowerCase()))
Замените на
Java
1
if(process.equals(Data.toLowerCase()))
0
0 / 0 / 1
Регистрация: 24.02.2015
Сообщений: 6
25.02.2015, 10:10  [ТС]
Я пробовал, но после этого есть процесс или нет программа не закрывается. Тоесть не видит процесс
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
25.02.2015, 10:45
Вы вообще пытались смотреть в каком виде
Code
1
tasklist.exe /v /fo list
выдает результат?
Проще всего сделать так
Code
1
tasklist /nh /fo csv
а потом
Java
1
2
3
4
            while ((line = input.readLine()) != null) {
                String[] array = line.split(",");
                processes.add(array[0].toLowerCase().replaceAll("\"",""));
            }
ну и дальше проверять через equals если в списке ахтунг-процессов их имена указаны полностью
0
0 / 0 / 1
Регистрация: 24.02.2015
Сообщений: 6
25.02.2015, 11:47  [ТС]
Спасибо!
А как делать из этого 2 массива, чтобы в одном проверялись полные имена, а в другом часть?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
25.02.2015, 11:52
в processes будет лежать список имен запущенных в системе процессов
сверять его с заданным можно как угодно, что непонятного?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2015, 11:52
Помогаю со студенческими работами здесь

Поиск процесса по имени
Такой вопрос: я ввожу с клавиатуры имя процесса и можно ли проверить, запущен ли процесс с таким именем?

Вывод имени процесса
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;string&gt; #include &lt;ctime&gt; #include &lt;Tlhelp32.h&gt; #include &lt;iomanip&gt; using...

Поиск процесса по имени
Помогите написать программу поиска процесса по имени на MS Visual Studio 2010.

Завершение процесса по имени
есть только имя процесса, какие функции понадобятся чтоб его завершить? Добавлено через 9 минут попробовал вот так -контра не...

Поиск процесса по имени
Нужно написать функцию которая будет искать запущен ли процесс (имя процесса за ранние известно).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru