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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2014, 19:16   #1
net2511
Новичок
Джуниор
 
Регистрация: 13.11.2014
Сообщений: 1
По умолчанию Мониторинг выполняющихся процессов

Мониторинг выполняющихся процессов и вывод списка выполняющихся процессов. В список должны входить: имя процесса;PID;время старта процесса;объем используемой основной памяти, количество страничных ошибок.

имя процесса и PID я сделал а остальное не получается помогите пожалуйста продолжить
Код:
unit Unitvar1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Tlhelp32;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Pr_Pid, Pr_Thr, Pr_Paren, Pr_Prio : array[0..100] of integer;


   implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  close();
end;

procedure TForm1.Button2Click(Sender: TObject);
 var
SH           : Thandle;
Num, I     : Integer;
PPE         : TProcessEntry32;
Pr_names  :     array [0..100] of string;


 // Pr_Pid, Pr_Thr, Pr_Paren,Pr_Prio : array[0..100] of integer;

begin
Num := 0;

//  Получение снимка состояния системы
SH := CreateToolHelp32SnapShot(Th32cs_SnapAll, 0);
//   Выделение из снисмка имени первого процесса
PPE.dwSize := sizeof (ProcessEntry32);
Process32First(SH, PPE);
Pr_Names [Num] := PPE.szExeFile;
Pr_Pid[Num] := PPE.th32ProcessID;
Pr_Thr [Num] := PPE.cntThreads;
Pr_Paren [Num] := PPE.th32ParentProcessID;
Pr_Prio [Num] :=PPE.pcPriClassBase;
//  получение имен других процессов
while Process32Next(SH, PPE) do
begin
Num := Num + 1;
Pr_Names [Num]   := PPE.szExeFile;
Pr_Pid[Num] := PPE.th32ProcessID;
Pr_Thr [Num] := PPE.cntThreads;
Pr_Paren [Num] := PPE.th32ParentProcessID;
Pr_Prio [Num] :=PPE.pcPriClassBase;





end;
Listbox1.Clear;
 //

For i:=0 to Num do
  Listbox1.Items.Add (inttostr(Pr_Pid[i])+ '   '+ inttostr(Pr_Thr[i])+'   '+
   inttostr(Pr_Paren[i])+'    ' + inttostr(Pr_Prio[i])+'    '+Pr_Names [I] );

//
CloseHandle(SH)
end;

procedure TForm1.Button3Click(Sender: TObject);

var         prochand: Thandle;
    procid, exitcode: integer;
begin
  Label2.Caption:=inttostr(ListBox1.Itemindex);
  procid :=Pr_Pid[ListBox1.Itemindex];
  Prochand := OpenProcess ( PROCESS_TERMINATE,  //  флаг  доступа
     false,	                        // handle inheritance flag
     procid ); 	                   //  идентификатор процесса

    Label3.Caption:=inttostr (procid);
    TerminateProcess ( prochand, ExitCode);
end;

end.

Последний раз редактировалось Stilet; 13.11.2014 в 20:05.
net2511 вне форума Ответить с цитированием
Старый 13.11.2014, 19:23   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

чот не отвечает никто. а почему?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание задания, добавление процессов, удаление процессов RAZOR1703 Win Api 12 16.02.2012 18:07
Мониторинг shtep PHP 1 06.02.2012 10:37
Мониторинг процессов по времени в Windows 7 Ecosasha Софт 1 22.09.2011 19:00
Мониторинг ОС Smile08 Безопасность, Шифрование 3 08.11.2010 16:00
Мониторинг CS bookkc Фриланс 4 09.01.2010 18:17