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

Как узнать Handle или PID процесса, зная его имя и класс? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятное условие задачи http://www.cyberforum.ru/cpp-beginners/thread633999.html
Напишите перегруженные версии функции iquote(), которая отображает аргументы, заключенные в двойные кавычки. Напишите три версии: одну для аргумента типа int, другую для аргумента типа double и третью для аргумента типа string. Я сначала вот так подумал сделать. void iquote(const int n); void iquote(const double n); void iquote(const string n); Или вот так: void iquote(const char...
C++ Объявление заголовочных файлов Скажите в чем разница между объявлением вида: #include <iostream> и вида #include "iostream" http://www.cyberforum.ru/cpp-beginners/thread633904.html
C++ Перегрузка [][]
Возможно ли для данного класса обеспечить перегрузку жвойных скобок с тем, чтобы в программе можно было использовать выражения типа: MyClass
Закрытия MessageBox C++
Добрый день как программно можно закрыть окно MessageBox без нажатия кнопки OK
C++ motion blur http://www.cyberforum.ru/cpp-beginners/thread633865.html
Здравствуйте. Моя задача состоит в том, чтоб реализовать эффект motion blur по любой заданной пользователем траектории. Вопрос следующий - как задавать ядро свёртки? Пока получается криво даже для вектора 45 градусов. Возможно, посоветуете какую-то литературу, как работать с коеффициентами ядра?
C++ Реализация класса стека Приветствую! Пробую написать класс стека, но работает не совсем так, как задумывалось. Что-то не так с получением значения // Êëàññ ñòåêà ñèìâîëîâ. #include <iostream> #include <windows.h> using namespace std; const int maxSsize = 100; подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
07.08.2012, 15:23     Как узнать Handle или PID процесса, зная его имя и класс?
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
47
#include <stdio.h> 
#include <Windows.h> 
#include <Winnt.h> 
//Здесь определена структура PROCESSENTRY32 и функция CreateToolhelp32Snapshot
#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;
 }
ЭТо вот PID-ы всех процессов. Сравнивай имена с нужными и будет тебе счастье


А вот хэндл процесса по имени
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h> 
#include <Windows.h> 
#include <tlhelp32.h>
 
HANDLE HandleProcessa (char* );
 
int main () {
 int i= 0;
 char ima_processa [1024]; 
 printf ("vvodi ima processa \n");
 for (;        (ima_processa [i]= getchar ())!= 10; i++) { }
  ima_processa [i]= 0;
 
 HANDLE hProcess= HandleProcessa (ima_processa);
 
 printf ("Handle processa %s raven %x\n",ima_processa, hProcess);
 
 CloseHandle (hProcess);
 system ("PAUSE");
 return 0;
}
 
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
 
 
HANDLE HandleProcessa (char* szFilename) {
 
 HANDLE hProcessSnap;
 PROCESSENTRY32 pe32;
 
 //Это мы находим дескриптор снимка процессов
 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
 if (hProcessSnap == INVALID_HANDLE_VALUE)
 return false;
 pe32.dwSize = sizeof(PROCESSENTRY32);
 
 
 Process32First(hProcessSnap, &pe32);
 while (lstrcmpi(pe32.szExeFile, szFilename)) // ищем нужный процесс. Его PID будет в поле pe32.th32ProcessID              
 {
  if (!Process32Next(hProcessSnap, &pe32)) { // перечисляем процессы
   CloseHandle(hProcessSnap);
   return FALSE;
  } 
 };
 
 
 CloseHandle(hProcessSnap);
 
 //Тот самый хэрдл, который ищем
 HANDLE hProcess;
 
 
 //Функция OpenProcess возвращает дескриптор процесса, а третий принимаемый ею параметр- идентификатор процесса
 // (PID)
 
//Внимание! Не для всех процессов возвращается хэндл, если права доступа PROCESS_ALL_ACCESS
//Приходится использовать только для чтения
 hProcess = OpenProcess(PROCESS_VM_READ, 0, pe32.th32ProcessID);
 
 return hProcess;
};
писал давно, поэтому код коряв даже на мой взгляд. Но рабоч.
 
Текущее время: 07:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru