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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2013, 16:56   #1
-=Andriushka=-
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 91
По умолчанию обновление данных

привет)реализую на С++ подобие диспетчера задач на Windows,вроде все хорошо,программа обновляется через определеное время если какието процессы были добавлены(/удалены) то это отображается, но вот почему то не апдейтится колонка CPU,подскажите в чем проблема.вот сам код:
Код:
 
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    for(;;){
// Делаем "снимок" процессов
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FILETIME ftCreation,
         ftExit,
         ftKernel,
         ftUser;
SYSTEMTIME stCreation,
           stExit,
           stKernel,
           stUser;
PROCESSENTRY32 pe;//хранит информацию о найденом процессе
if (Process32First(hSnapshot, &pe)) //Поиск первого процесса в снимке
  {
    printf("Name process               PID   CPU               Prioritet         PID family");
    printf("========================== ===== ================  ================  ==========");
    do  
      {
        if (!pe.th32ProcessID) continue;    // Пропуск [System process]
          HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
                                        PROCESS_VM_READ,
                                        FALSE,
                                        pe.th32ProcessID);  //Получаем дескриптор процесса
          GetProcessTimes(hProcess,&ftCreation,&ftExit,&ftKernel,&ftUser);//получаем системные времена процесса
 
          FileTimeToSystemTime(&ftCreation, &stCreation);
          FileTimeToSystemTime(&ftExit, &stExit);
          FileTimeToSystemTime(&ftUser, &stUser);
          FileTimeToSystemTime(&ftKernel, &stKernel);
           
//          cout<<"creation time   -> "<<stCreation.wHour<<" Hour "<<stCreation.wMinute<<" Min "
//              <<stCreation.wSecond<<" Sec "<<stCreation.wMilliseconds<<" mSec "<<endl; 
        int now=0,noq=0;
           now=(double)stUser.wHour*3600.0+
                  (double)stUser.wMinute*60.0+
                  (double)stUser.wSecond+
                  (double)stUser.wMilliseconds/1000.0;
           noq=(double)stKernel.wHour*3600.0+
                  (double)stKernel.wMinute*60.0+
                  (double)stKernel.wSecond+
                  (double)stKernel.wMilliseconds/1000.0;
//        cout<<"->"<<now<<"  ->"<<noq<<endl;
         int cpu=0;
           if(noq!=0)
             cpu=(now/noq);
           else
             cpu=0;
//       cout<<"->"<<cpu<<endl;
 
         char cPriority[18];
           switch (GetPriorityClass(hProcess))  //Получаем приоритет процесса
             {
               case HIGH_PRIORITY_CLASS:
                  strcpy(cPriority, "Vishe srednego");
                  break;
               case IDLE_PRIORITY_CLASS:
                  strcpy(cPriority, "Nizkii");
                  break;
               case NORMAL_PRIORITY_CLASS:
                  strcpy(cPriority, "Srednii");
                  break;
               case REALTIME_PRIORITY_CLASS:
                  strcpy(cPriority, "Realnogo vremeni");
                  break;
                default:
                  strcpy(cPriority, "Visokii");
            }
          CloseHandle(hProcess);
            //Выводим информацию о процессе
printf("%24s%6d%18d%18s%12d\n", pe.szExeFile, pe.th32ProcessID,
        cpu, cPriority, pe.th32ParentProcessID);            
        }
        while (Process32Next(hSnapshot, &pe));  //Поиск следущего процесса в снимке
    }
    else printf("Ne poluchilos' poluchit' informaciu");
        //TerminateProcess(hSnapshot, 0);
    CloseHandle(hSnapshot);
    Sleep(200);
    system("cls");
}
    system("PAUSE");
    return 0;
    getch();
}
-=Andriushka=- вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обновление данных LER44IKK БД в Delphi 1 16.05.2011 02:00
Обновление данных в БД. Slavdholl PHP 3 29.04.2011 17:38
Обновление данных S@fer БД в Delphi 12 17.10.2010 16:01
Обновление списка данных без потери данных в переменных VaBank БД в Delphi 13 03.06.2009 10:47
Обновление данных Родион БД в Delphi 3 17.09.2008 20:49