![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процессы,их время выполнения в квантах [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