Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как программно получить список процессов 
:(
    Опции темы
Wowa
Дата 4.12.2004, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Автор:AntonSaburov

RTFM неплохо бы иногда. Прямо оттуда.

Код

#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>

BOOL GetProcessList () 

   HANDLE         hProcessSnap = NULL; 
   BOOL           bRet      = FALSE; 
   PROCESSENTRY32 pe32      = {0}; 

   //  Take a snapshot of all processes in the system. 

   hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 

   if (hProcessSnap == INVALID_HANDLE_VALUE) 
       return (FALSE); 

   //  Fill in the size of the structure before using it. 

   pe32.dwSize = sizeof(PROCESSENTRY32); 

   //  Walk the snapshot of the processes, and for each process, 
   //  display information. 

   if (Process32First(hProcessSnap, &pe32)) 
   { 
       DWORD         dwPriorityClass; 
       BOOL          bGotModule = FALSE; 
       MODULEENTRY32 me32       = {0}; 

       do 
       { 
           bGotModule = GetProcessModule(pe32.th32ProcessID, 
               pe32.th32ModuleID, &me32, sizeof(MODULEENTRY32)); 

           if (bGotModule) 
           { 
               HANDLE hProcess; 

               // Get the actual priority class. 
               hProcess = OpenProcess (PROCESS_ALL_ACCESS, 
                   FALSE, pe32.th32ProcessID); 
               dwPriorityClass = GetPriorityClass (hProcess); 
               CloseHandle (hProcess); 

               // Print the process's information. 
               printf( "\nPriority Class Base\t%d\n", 
                   pe32.pcPriClassBase); 
               printf( "PID\t\t\t%d\n", pe32.th32ProcessID);
               printf( "Thread Count\t\t%d\n", pe32.cntThreads);
               printf( "Module Name\t\t%s\n", me32.szModule);
               printf( "Full Path\t\t%s\n\n", me32.szExePath);
           } 
       } 
       while (Process32Next(hProcessSnap, &pe32)); 
       bRet = TRUE; 
   } 
   else 
       bRet = FALSE;    // could not walk the list of processes 

   // Do not forget to clean up the snapshot object. 

   CloseHandle (hProcessSnap); 
   return (bRet); 
}

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0999 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.