Форум программистов, компьютерный форум CyberForum.ru

Операции с процессами - C++

Восстановить пароль Регистрация
 
KostyaKulakov
Заблокирован
16.12.2012, 11:52     Операции с процессами #1
Решил написать маленький нубо анти-чит . но тут возникла проблема, я не могу найти подходящей литературы.
Задача такова: нужно, чтобы программа рыскала по всем процессам и искала процесс с заданным названием, если нашла. убили процесс. остальные детали можно опустить

Где можно найти литературу в которой будет освещаться моя задача или похожие задачи
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,268
16.12.2012, 11:56     Операции с процессами #2
Всё просто на самом деле
C++
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
39
40
41
42
43
44
45
46
#include <stdio.h> 
#include <Windows.h> 
//#include <Winnt.h> 
#include <tlhelp32.h>
FILE *f;
bool SpisokProcessov ()  {
 
 HANDLE hProcessSnap;
 PROCESSENTRY32 pe32;
 
 //Это мы находим дескриптор снимка процессов
 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
 if (hProcessSnap == INVALID_HANDLE_VALUE)
 return false;
 pe32.dwSize = sizeof(PROCESSENTRY32);
 
 
 int i= 0;
 
 //
 
 Process32First(hProcessSnap, &pe32);
 printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
 fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 while (Process32Next(hProcessSnap, &pe32)) {
  printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
  fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 } 
 
 
 CloseHandle(hProcessSnap);
 return true;
}
 
 
 
 int main () {
 f = fopen("rezultat.txt","wb");
 
 //Если циклом не хочешь, надо закомментить эту херь
// while (1) 
  SpisokProcessov ();
 fclose (f);
  getchar ();
  return 0;
 }
Делай с ними чё хочешь.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2012, 12:02     Операции с процессами #3
KostyaKulakov, вам нужно мониторить все процессы http://www.rsdn.ru/article/qna/baseserv/enumproc.xml
KostyaKulakov
Заблокирован
16.12.2012, 13:12  [ТС]     Операции с процессами #4
Цитата Сообщение от kravam Посмотреть сообщение
Всё просто на самом деле
C++
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
39
40
41
42
43
44
45
46
#include <stdio.h> 
#include <Windows.h> 
//#include <Winnt.h> 
#include <tlhelp32.h>
FILE *f;
bool SpisokProcessov ()  {
 
 HANDLE hProcessSnap;
 PROCESSENTRY32 pe32;
 
 //Это мы находим дескриптор снимка процессов
 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
 if (hProcessSnap == INVALID_HANDLE_VALUE)
 return false;
 pe32.dwSize = sizeof(PROCESSENTRY32);
 
 
 int i= 0;
 
 //
 
 Process32First(hProcessSnap, &pe32);
 printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
 fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 while (Process32Next(hProcessSnap, &pe32)) {
  printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
  fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 } 
 
 
 CloseHandle(hProcessSnap);
 return true;
}
 
 
 
 int main () {
 f = fopen("rezultat.txt","wb");
 
 //Если циклом не хочешь, надо закомментить эту херь
// while (1) 
  SpisokProcessov ();
 fclose (f);
  getchar ();
  return 0;
 }
Делай с ними чё хочешь.
можете printf переделать на std::cout а то нефига не понимаю в этом printf

Добавлено через 12 минут
и ещё охото, что бы описали все действия которые происходят в программе по средствам комментарий //

и код выравнять, а то читать не удобно... блин столько прошу. извените
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,268
16.12.2012, 13:50     Операции с процессами #5
Ну находишь дескриптор снимка системы и пробегаешься по ней в цикле, тебе и надо-то то с двумя функциями разобраться Process32First и Process32Next; инфа есть в инете русскоязычная.

C++
1
2
3
4
5
6
7
 Process32First(hProcessSnap, &pe32);
 printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
 fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 while (Process32Next(hProcessSnap, &pe32)) {
  printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
  fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 }
, чё тут непонятного? первый процесс нашли (Process32First), считали данные, потом в цикле пошли считывать остальные процессы (Process32Next), как все данные считали, вышли из цикла.

А printf на cout это ты уж как-нибудь сам.
Yandex
Объявления
16.12.2012, 13:50     Операции с процессами
Ответ Создать тему
Опции темы

Текущее время: 18:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru