Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Процессы,их время выполнения в квантах [D6, Win95/98]


Pro ©   (2004-06-10 07:38:00) 

Программисты и все кто знает Делфи помогите !
Нужна прога или исходник,хоть что-то:прога должна уметь смотреть запущенные процессы и время их выполнения в квантах!


Digitman   (2004-06-10 09:14:00) [1]

GetProcessTimes()

редкостным лентяям и прогульщикам лекций посвящается..


Pro   (2004-06-10 09:06:00) [2]

Да блин я знаю что это не мой но я его под свою прогу переделал!


хз   (2004-06-10 09:02:00) [3]

> Мой исходник такой:unit SysInfoU;

Это не твой исходник. Этому исходнику уже года 3.


with (Sender as TListView) do
  if Selected <> nil then


:-))

--> LMD


Романов Р.В.   (2004-06-10 08:51:00) [4]


> Всем в моей группе дали простенький таймер,а мне вот....


Значит тебя пытаются сплавить в армию.


Pro   (2004-06-10 08:51:00) [5]

Мой исходник такой:unit SysInfoU;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ComCtrls, StdCtrls, Buttons, ImgList, Commctrl, ShellAPI, Menus;

type
 TForm1 = class(TForm)
   PageControl1: TPageControl;
   TabSheet1: TTabSheet;
   ListView1: TListView;
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   procedure PageControl1Change(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure ListView1Click(Sender: TObject);
   procedure ListView1KeyUp(Sender: TObject; var Key: Word;
     Shift: TShiftState);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

uses
 TlHelp32, AdditU;

procedure ListProcesses;
var
 hSnapShot: THandle;
 lppe: TProcessEntry32;
 hIcon: THandle;
 Count: Integer;

 procedure _FillList;
 begin
   with Form1.ListView1.Items.Add, lppe do
   begin
     hIcon:= ExtractIcon(hInstance, lppe.szExeFile, 0);
     if hIcon = 0 then
       hIcon:= LoadImage(0, IDI_WINLOGO, IMAGE_ICON, LR_DEFAULTSIZE,
         LR_DEFAULTSIZE, LR_DEFAULTSIZE or LR_DEFAULTCOLOR or LR_SHARED);
           Caption:= ExtractFileName(szExeFile);
     SubItems.Add(Format('$%x', [Th32ProcessID]));
     SubItems.Add(Format('$%x', [Th32ParentProcessID]));
     case pcPriClassBase of
       4: SubItems.Add(Format('%d (Idle)', [pcPriClassBase]));
       8: SubItems.Add(Format('%d (Norm)', [pcPriClassBase]));
      13: SubItems.Add(Format('%d (High)', [pcPriClassBase]));
      24: SubItems.Add(Format('%d (Real)', [pcPriClassBase]));
     else SubItems.Add(Format('%d', [pcPriClassBase]));
     end;
   end;
   Inc(Count);
 end;

begin
 hSnapShot:= CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 if hSnapShot <> INVALID_HANDLE_VALUE then
 begin
   Form1.ListView1.Items.Clear;
   lppe.dwSize:= SizeOf(lppe);
   Count:= 0;
   if Process32First(hSnapShot, lppe) then _FillList;
   while Process32Next(hSnapShot, lppe) do _FillList;

   CloseHandle(hSnapShot);
 end
 else MessageBox(Form1.Handle, 'Internal error', 'Ошибка', MB_OK or MB_ICONERROR);
end;

procedure TForm1.PageControl1Change(Sender: TObject);
begin
 //ListProcesses;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListProcesses;
end;

procedure TForm1.ListView1Click(Sender: TObject);
begin
 with (Sender as TListView) do
   if Selected <> nil then

end;

procedure TForm1.ListView1KeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if flag = true then flag:= false
 else
 begin
   if Key <> 0 then ListView1Click(ListView1);
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 hProcess: THandle;
 S: string;
 ID: Cardinal;
begin
 if ListView1.Selected <> nil then
 begin
   S:= ListView1.Selected.Caption;
   ID:= StrToInt(ListView1.Selected.SubItems[0]);
   hProcess:= OpenProcess(PROCESS_ALL_ACCESS, false, ID);
   if hProcess <> INVALID_HANDLE_VALUE then
   begin
     if not TerminateProcess(hProcess, 0) then
       MessageBox(0, PChar('Невозможно удалить процесс: ' + S),
         'Ошибка', MB_ICONWARNING or MB_OK);
     CloseHandle(hProcess);
     Sleep(500);
     ListProcesses;
   end;
 end
 else MessageBox(Handle, 'Выбирите процесс, который необходимо удалить!!!', 'Information',
   MB_OK or MB_ICONINFORMATION);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;

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

end.


Pro   (2004-06-10 08:46:00) [6]

Чего то эта ссылка у меня не открывается, не можешь сюда все это кинуть ??


Pro   (2004-06-10 08:44:00) [7]

Спасибо щас посмотрю..


Digitman   (2004-06-10 08:39:00) [8]


> где найти эту функцию LookProcessAndGetQuantum


http://dummy.msdn.miсrosoft.com


Pro   (2004-06-10 08:37:00) [9]

Всем в моей группе дали простенький таймер,а мне вот....
Я не хочу в армию !!!


Pro   (2004-06-10 08:36:00) [10]

Да хреново!!
Сочувствия.....
Но все же где найти эту функцию LookProcessAndGetQuantum
или может кто скажет через что ее найти и верно вставить в код программы :прога умеет определять приоритет процессов и показывает сами процессы,а также умеет их завершать.....


Романов Р.В.   (2004-06-10 08:30:00) [11]

У моего друга брат тоже зачет не сдал 2 недели назад. Его как бы выгнали и сказали что осенью можно восстановиться с возможностью сдать зачет и остатки экзаменов (больщая часть экзаменов у него сдана).
Но он не пойдет осенью учится... Щас он служет в морфлоте.


Pro   (2004-06-10 08:23:00) [12]

Так то у меня сейчас сессия и препод из-за этой проги не ставит мне зачет, я уже 1 экзамен пропустил........


Gero   (2004-06-10 08:08:00) [13]


> мне как ее использовать в Delphi 6

Написать ее самому.


Gero   (2004-06-10 08:07:00) [14]


> хз ©   (10.06.04 08:05)

Ага, еще для компиляции понадобится uses Golova.


хз   (2004-06-10 08:05:00) [15]

2 Gero ©   (10.06.04 07:58) [4]

Забыл:

uses
 PriamyeRuki;


Pro   (2004-06-10 08:05:00) [16]

Я не очень хорошо разбираюсь,но мне как ее использовать в Delphi 6 ? Всем за все огромное спасибо !!!!!


Gero   (2004-06-10 07:58:00) [17]


> но разве в делфи нет такой функции ?

Конечно есть, называется LookProcessAndGetQuantum. Поствляется с Delphi 0.1.


r9000   (2004-06-10 07:57:00) [18]

Ты в делфи эти функции WINAPI как раз и используешь.


Pro   (2004-06-10 07:51:00) [19]

Большое спасибо r9000,но разве в делфи нет такой функции ?


r9000   (2004-06-10 07:48:00) [20]

Насчет времени выполнения в квантах не знаю, а просмотреть какие
процессы запущены можно с помощью функций WINAPI.
http://www.delphimaster.ru/articles/winapi/index.html
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621534&n=15


Наверх

Титульная страница Поиск, карта сайта Написать письмо