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

Как определить, запущен ли процесс? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу. http://www.cyberforum.ru/cpp-beginners/thread113639.html
задача помощь, пожалуйста! Написать программу. Даны матрицы M х Н. В каждой строке матрицы найти минимальный элемент.
C++ Работа с файлами Привет. вызвало сложность написать программку. помогите пожалуйста. Дан символьный файл *) f. Получить копию файла в файле g. *) Файл, компоненты которого являются символами, называется символьным файлом. http://www.cyberforum.ru/cpp-beginners/thread113636.html
error C2109: для индекса требуется массив или указатель. C++
#include <iostream> #include <string.h> #include <ctime> using namespace std; struct Fin
Разработать программу, моделирующую обстановку у киоска C++
ПОЖАЛУЙСТА ПОМОГИТЕ,КАК ТУТ СДЕЛАТЬ БЛОК СХЕМУ,И МОЖЕТЕ ОБЪЯСНИТЬ ЕСЛИ НЕ ТРУДНО...тУРБО СИ В газетный киоск стоит очередь желающих купить популярные издания «Караван» и «Казахстанская правда». Каждый из стоящих имеет намерение купить один или несколько экземпляров интересующих его изданий, но продавец продает только по одному экземпляру каждого издания. Издания подвозят двумя партиями по М...
C++ Строка в число http://www.cyberforum.ru/cpp-beginners/thread113600.html
Написать и протестировать функцию, которая преобразует строку двоичных цифр в эквивалентное ей целое десятичное число. пожалуйста сделайте
C++ Односвязный список.Очередь для символов. Пожалуйста помогите выполнить задачки.Буду очень признательна за помощь! 1. Создать односвязный список с помощью массива целых чисел. Поменять местами четные и нечетные элементы списка (рядом стоящие). Результирующий список вывести на экран. Порядок чисел в списке задается массивом индексов следующих элементов (next). 2. Создать очередь для символов. Максимальный размер очереди вводится с... подробнее

Показать сообщение отдельно
IcleyNex
1 / 1 / 0
Регистрация: 06.04.2010
Сообщений: 16
15.04.2010, 18:42  [ТС]     Как определить, запущен ли процесс?
Почитал про память. Опять в ступоре
Оказывается выделяется всегда четыре (два для проги) гига. На физическую память они проецируются малыми кусками (у калькулятора почти 250 кусков). А куски расположены на страницах. Понял что искать нужно в Commit страницах, так как там находятся данные. В общем чем дальше тем страшнее (особенно плохо разбираясь в коде )
Что делать то? http://x3dgames.narod.ru/inform/gdsrc.html вот тут какой то пример чтения памяти. Наверное оно мне подойдёт? Только всё равно не понятно и надо будет очень сильно изучать его.

Добавлено через 41 минуту
Наверное тему можно сворачивать. Итог: научились искать процесс по его имени и определять его ID. Проверка идёт постоянно, через секунду. Код явно кривущщий, потому как я начинающий, но он работает. Для изучения памяти создам новую тему. Всем спасибо, кипение мозгов продолжается.
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
#include <stdio.h>
#include <Windows.h>
#include <iostream>
#include <Winnt.h>
#include <string.h> // для сравнения строковых переменных
//Здесь определена структура PROCESSENTRY32 и функция CreateToolhelp32Snapshot
#include <tlhelp32.h>
//int main ();
//----------------------------------------------------------
 char TargetProc[] = "calc.exe";// имя процесса который ищем
 bool ProcRabotaet=0;
 int ProcID;
 //----------------------------------------------------------
HANDLE HandleProcessa ()  {
 HANDLE hProcessSnap;
 PROCESSENTRY32 pe32;
 //Это мы находим дескриптор снимка процессов
 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 if (hProcessSnap == INVALID_HANDLE_VALUE)
 return false;
 pe32.dwSize = sizeof(PROCESSENTRY32);
 int i= 0;
 while (Process32Next(hProcessSnap, &pe32)) {
 
  if ( 0 == strcmp(pe32.szExeFile,TargetProc) )
  {      ProcRabotaet=true;
          ProcID=pe32.th32ProcessID;
          return(0);
          }
     else  ProcRabotaet=false;
 }
 CloseHandle(hProcessSnap);
}
 
 int main () {
     printf ("Poisk processa: %s\n",TargetProc);
          while(1){
     HandleProcessa ();
  if (ProcRabotaet==1)
  {
    printf ("Process %s rabotaet, ID=%d  \r",TargetProc,ProcID);
  }
  else
  {
    printf ("Process %s NE zapushen      \r",TargetProc);
  }
  Sleep (1000);
  }
  getchar ();
  return 0;
 }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru