Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Поиск процесса по его имени или получение списков процессов и их PID
Kibor
Отправлено: 16 Марта, 2021 - 18:12:10
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




findprocess
Ищет процесс по его имени.
Возвращает его PID или -1 если процесс не найден.

Синтаксис:
CODE:
int PID=findprocess("notepad.exe");
messagebox(PID);



======================


listprocess
Получает список всех процессов.
В виде параметров принимает:
1 - указатель на массив string, в который запишутся имена процессов.
2 - указатель на массив int, в который запишутся их PIDы
Возвращает количество найденных процессов или -1 если какой то массив меньше чем количество.

Пример:
CODE:

string Name[1000];
int Pid[1000];
int k=listprocess (#Name[0], #Pid[0]);
for (int n=0; n<k; n++)
{
if (Name[n]=="notepad.exe") {messagebox (Pid[n]); break;}
}



=======================


PID может применяться в функции openprocess для открытия его для чтения/записи в память и тд.



==================================





Пример как убить процесс:
CODE:
external(INT, "TerminateProcess", "TerminateProcess", "Kernel32.dll");

int Pid=findprocess("notepad.exe");
if (Pid>-1)
{
TerminateProcess(openprocess(Pid), 9);
}



--------------------------------------


Получение PID процесса по указателю на окно.
CODE:
external(INT, "GetWindowThreadProcessId", "GetWindowThreadProcessId", "User32.dll");

win w=window (-1, "MozillaWindowClass", -1);
int Hwnd=formatwi(w);
int pid=0;
GetWindowThreadProcessId(Hwnd, address(#pid));
messagebox (pid);



-----------------------------------------


Получение списка всех окон процесса, по указателю на любое открытое окно этим процессом или на любой контрол.
Пример получения указателей на окна блокнота с указателя на открытое дочерное окно "Заменить".
CODE:
external(INT, "GetWindowThreadProcessId", "GetWindowThreadProcessId", "User32.dll");

win t=window ("Заменить", "#32770", -1);
if (t)
{
int pid=0;
if(GetWindowThreadProcessId(formatwi(t), address(#pid)))
{
win w[100];
int k=listwinprocess(#w[0], pid);
for (int n=0; n<k; n++)
{
setwindowparam (w[n]);
messagebox (w.name[n]+" - "+w.class[n]+" -- "+format(w.left[n])+" - "+format(w.widthclient[n]));
}
}
}
 
 Top
10970
Отправлено: 10 Сентября, 2022 - 01:49:01
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июнь 2019  
Откуда: Россия
Репутация: 0




string Name[1000];
int Pid[1000];
int k=listprocess (#Name[0], #Pid[0]);
for (int n=0; n<k; n++)
{
if (Name[n]=="notepad.exe"Подмигивание {messagebox (Pid[n]); break;}

Не выводит этот код количество найденных процессов. Выводит 4х значное число.Запустил 3 блокнота, запустил скрипт получил 8944. И так со всеми приложениями. Не пойму это тупо пид выводится? А как узнать количество запущеных одинаковых процессов? И еще вопрос. Если переименовать экзешник, название процесса тоже меняется, и пид соответственно тоже?
Но количество запущенных процессов по имени все таки тоже интересно узнать.
 
 Top
Zireael
Отправлено: 10 Сентября, 2022 - 02:16:35
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
А как узнать количество запущеных одинаковых процессов?

CODE:
string Name[1000];
int Pid[1000];
int k=listprocess (#Name[0], #Pid[0]);
messagebox("Найдено процессов: "+format(k));

int count=0;
for (int n=0; n<k; n++)
{
if (Name[n]=="notepad.exe")count++;
}
messagebox("Всего notepad.exe: "+format(count));
 
 Top
10970
Отправлено: 10 Сентября, 2022 - 02:28:05
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июнь 2019  
Откуда: Россия
Репутация: 0




 Zireael пишет:
 Цитата:
А как узнать количество запущеных одинаковых процессов?

CODE:
string Name[1000];
int Pid[1000];
int k=listprocess (#Name[0], #Pid[0]);
messagebox("Найдено процессов: "+format(k));

int count=0;
for (int n=0; n<k; n++)
{
if (Name[n]=="notepad.exe")count++;
}
messagebox("Всего notepad.exe: "+format(count));


Спасибо уважаемый.
 
 Top
10970
Отправлено: 10 Сентября, 2022 - 06:06:56
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июнь 2019  
Откуда: Россия
Репутация: 0




Zireael ,
как вам можно написать в лс? не вижу ни каких ссылок. У меня есть готовый код, но я слабо понимаю в питоне. Там подправить буквально пару строк..
Может быть найдете время посмотреть?
 
 Top
Zireael
Отправлено: 10 Сентября, 2022 - 17:20:27
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
как вам можно написать в лс?

https://ibb.co/PZqCYGh
 
 Top
10970
Отправлено: 11 Сентября, 2022 - 00:36:29
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июнь 2019  
Откуда: Россия
Репутация: 0




Написал вам в ЛС.
По работе нарисовалась проблема.
Когда создаешь экзешник с упаковкой там всего что надо +питон, то при наличии галки активировать антианти чит впоследствии экзешник НЕ работает.
При запуске вместо самого экзешника запускается антианти чит, закрывается с ошибкой и все.(смотрел при запуске в дисп задач) На этом все останавливается. Если эту галку убрать все работает нормально.
Не проверял работу данной упаковки БЕЗ питона.
 
 Top
10970
Отправлено: 12 Сентября, 2022 - 10:33:45
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июнь 2019  
Откуда: Россия
Репутация: 0




ну вы как нить отреагируйте, реальная же проблема.. Не работает упаковка скрипта в ехе правильно если включено одновременно галки антианти чит и питон..
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by