Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2018, 07:03   #1
winlife
Новичок
Джуниор
 
Регистрация: 12.01.2018
Сообщений: 1
По умолчанию Проверка нескольких процессов

Приветствую.
Подскажите пожалуйста по коду
Код:
//#include <cstdio>
#include <windows.h>
#include <TlHelp32.h>
#include <iostream>
#include <time.h>

class procHandle {
    ProcId id;
    HANDLE handle;
public:
    procHandle(std::wstring const &name, DWORD access = PROCESS_ALL_ACCESS)
        : id(name), 
        handle(OpenProcess(access, FALSE, id)   )
    {
        // according to MSDN, returns NULL in case of error
        assure(handle != NULL, "Error retrieving process handle");
    }

    ~procHandle() { CloseHandle(handle); }

    operator HANDLE() { return handle; }
};

using namespace std;

void sleepcp(int milliseconds);

void sleepcp(int milliseconds) // Cross-platform sleep function
{
    clock_t time_end;
    time_end = clock() + milliseconds * CLOCKS_PER_SEC/1000;
    while (clock() < time_end)
    {
    }
}

HANDLE GetProcessHandle(const char *process_name, DWORD dwAccess)
{
  HANDLE hProcessSnap;
  HANDLE hProcess;
  PROCESSENTRY32 pe32;


  hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

  if(hProcessSnap==INVALID_HANDLE_VALUE)
    {
      std::cout <<"Failed to create process snapshot!";
      return INVALID_HANDLE_VALUE;
    }

  pe32.dwSize=sizeof(PROCESSENTRY32);

  if(!Process32First(hProcessSnap,&pe32))
    {
      std::cout <<"Process32First() failed\n";
      return INVALID_HANDLE_VALUE;
    }

  do
    {
      if(strcmp(pe32.szExeFile,process_name)==0)
        return OpenProcess(dwAccess,0,pe32.th32ProcessID);

    }
  while(Process32Next(hProcessSnap,&pe32));

}

int main()

{
	while(true) {
		sleepcp(3000);
    //HANDLE hProcess=GetProcessHandle("process1.exe",PROCESS_QUERY_INFORMATION);
    if(hProcess==0 || hProcess==INVALID_HANDLE_VALUE)
    {
        std::cout <<"process1 is not running";
        //return 0;
    }
    else
    {
        std::cout <<"process1 is running";
        //return 0;
    }
}
}
в данном случае проверяется 1 процесс, мне же необходимо проверить список такого вида:
process1.exe, process2.exe, process3title, process4title где process3title и process4title это win титлы определенных приложений/
зарание спасибо
winlife вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нескольких процессов через цикл Си WolfEater Помощь студентам 1 29.09.2015 17:29
Pascal Синхронизация и взаимодействие нескольких процессов Usya100 Фриланс 4 19.12.2013 12:01
Использование нескольких процессов (За деньги) [FENIX] Фриланс 1 23.04.2012 14:11
Проверка нажатия нескольких RadioButton (избавиться от множества проверок) Olya1985 Общие вопросы Delphi 2 21.08.2011 18:13
Проверка на наличие нескольких максимальныхэлементов xxSINxx Помощь студентам 3 11.03.2009 20:40