Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Различные алгоритмы минимизации, реализованные в С++ / all / Lab07
.cpp// Lab07.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <tlhelp32.h>
#include <conio.h>
int main(int argc, char* argv[])
{
HANDLE SS=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
LPPROCESSENTRY32 PE[140];
LPTHREADENTRY32 TE[1000];
PE[0]=new PROCESSENTRY32;
PE[0]->dwSize = sizeof(*(PE[0]));
Process32First(SS,PE[0]);
int i=0;
do
{
PE[++i]=new PROCESSENTRY32;
PE[i]->dwSize = sizeof(*(PE[i]));
} while(Process32Next(SS,PE[i]));
PE[i+1]=new PROCESSENTRY32;
for(int j=0;j<i-1;j++)
for(int k=0;k<i-1;k++)
if(PE[k]->th32ProcessID > PE[k+1]->th32ProcessID)
{
(*PE[i+1])=(*PE[k]);
(*PE[k])=(*PE[k+1]);
(*PE[k+1])=(*PE[i+1]);
}
cprintf("%20s%20s%20s\n","Number","Process EXE File","Process ID");
for(j=0;j<i;j++)
cprintf("%20d%20s%20d\n",j+1,PE[j]->szExeFile,PE[j]->th32ProcessID);
cprintf("Enter number of process: ");
int inp;
cscanf("%d",&inp);
cprintf("\n");
TE[0]=new THREADENTRY32;
TE[0]->dwSize = sizeof(*(TE[0]));
Thread32First(SS,TE[0]);
i=0;
do
{
if(TE[i]->th32OwnerProcessID==PE[inp-1]->th32ProcessID)
{
TE[++i]=new THREADENTRY32;
TE[i]->dwSize = sizeof(*(TE[i]));
}
} while(Thread32Next(SS,TE[i]));
if(TE[i]->th32OwnerProcessID!=PE[inp-1]->th32ProcessID)i--;
TE[i+1]=new THREADENTRY32;
for(j=0;j<i-1;j++)
for(int k=0;k<i-1;k++)
if(TE[k]->th32ThreadID > TE[k+1]->th32ThreadID)
{
(*TE[i+1])=(*TE[k]);
(*TE[k])=(*TE[k+1]);
(*TE[k+1])=(*TE[i+1]);
}
cprintf("%20s%20s%20s\n","Number","Thread ID","Thread Priority");
for(j=0;j<i+1;j++)
cprintf("%20d%20d%20d\n",j+1,TE[j]->th32ThreadID,TE[j]->tpBasePri);
cprintf("Press any key to quit...");
_getch();
_getch();
return 0;
}
Соседние файлы в папке all