Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

помогите с описанием функции   Найти похожие ветки 

 
barmaley2000   (2003-12-23 22:57) [0]

Я хорошо понимаю описание программы нудное дело, но я больше не знаю к кому обратится, чтобы помогли здавать программу через четыре дня, а я не знаю половину кода
если комуто не лень помогите с описанием следующей части:

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);
ImageIndex:= ImageList_AddIcon(Form1.ImageList1.Handle, hIcon);
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;
SubItems.Add(Format("%d", [cntThreads]));
SubItems.Add(Format("%d", [cntUsage]));
SubItems.Add(szExeFile);
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;
Form1.StatusBar1.Panels[1].Text:= "Total: " + IntToStr(Count);
CloseHandle(hSnapShot);
end
else MessageBox(Form1.Handle, "Internal error", "Error", MB_OK or MB_ICONERROR);
end;

procedure ListWindows;

function EnumWindowsProc(hWnd: THandle; lParam: Integer): Boolean; stdcall;
var
Text,
PName: string;
hIcon: THandle;
lpdwPID: PDWORD;
i: Integer;
begin
New(lpdwPID);
GetWindowThreadProcessID(hWnd, lpdwPID);
SetLength(Text, 255);
if GetWindowText(hWnd, PChar(Text), 255) <> 0 then
with Form1.ListView2.Items.Add, Form1.ListView1 do
begin
hIcon:= GetClassLong(hWnd, GCL_HICON);
ImageIndex:= ImageList_AddIcon(Form1.ImageList1.Handle, hIcon);
for i:= 0 to Items.Count - 1 do
if Cardinal(StrToInt(Items[i].SubItems[0])) = lpdwPID^ then
PName:= Items[i].Caption;
Caption:= Text;
SubItems.Add(Format("%d", [hWnd]));
SubItems.Add(Format("$%x", [lpdwPID^]));
SubItems.Add(PName);
Dispose(lpdwPID);
end;
Result:= true;
end;

begin
Form1.ListView2.Items.Clear;
EnumWindows(@EnumWindowsProc, 0);
end;

procedure ListThreads(OwnerID: Cardinal);
var
hSnapShot: THandle;
lpte: TThreadEntry32;

begin
hSnapShot:= CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, OwnerID);
if hSnapShot <> INVALID_HANDLE_VALUE then
begin
Form1.ListView2.Items.Clear;
lpte.dwSize:= SizeOf(lpte);
CloseHandle(hSnapShot);
end
else MessageBox(Form1.Handle, "Internal error", "Error", MB_OK or MB_ICONERROR);
end;

procedure ListHeaps(OwnerID: Cardinal);
var
hSnapShot: THandle;
lphl: THeapList32;
lphe: THeapEntry32;

begin
try
Form1.Caption:= "SysInfo: PROCESSING... PLEASE WAIT";
hSnapShot:= CreateToolhelp32Snapshot(TH32CS_SNAPHEAPLIST, OwnerID);
if hSnapShot <> INVALID_HANDLE_VALUE then
begin
lphl.dwSize:= SizeOf(lphl);
lphe.dwSize:= SizeOf(lphe);
CloseHandle(hSnapShot);
end
else MessageBox(Form1.Handle, "Internal error", "Error", MB_OK or MB_ICONERROR);
finally
Form1.Caption:= "SysInfo";
end;
end;

procedure ListThreadWindows;
var
i: Integer;

function EnumThreadWindowsProc(hWnd: THandle; lParam: Integer): Boolean; stdcall;
var
Text: string;
hIcon: THandle;
begin
SetLength(Text, 255);
Result:= true;
end;

begin
Form1.ListView2.Items.Clear;
for i:= 0 to Form1.ListView2.Items.Count - 1 do
EnumThreadWindows(Cardinal(StrToInt(Form1.ListView2.Items[i].Caption)),
@EnumThreadWindowsProc, 0);
end;

{---------------------------EVENT HANDLERS--------------------------------}

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

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

procedure TForm1.ListView1Click(Sender: TObject);
begin
with (Sender as TListView) do
if Selected <> nil then
StatusBar1.Panels[0].Text:= Selected.SubItems[5] else
StatusBar1.Panels[0].Text:= "";
end;

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

procedure TForm1.KillProcess1Click(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("Unable to kill process: " + S),
"Error", MB_ICONWARNING or MB_OK);
CloseHandle(hProcess);
Sleep(500);
ListProcesses;
end;
end
else MessageBox(Handle, "Select a process to be killed.", "Information",
MB_OK or MB_ICONINFORMATION);
end;

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

procedure TForm1.CloseWindow1Click(Sender: TObject);
begin
if ListView2.Selected <> nil then
begin
PostMessage(StrToInt(ListView2.Selected.SubItems[0]), WM_CLOSE, 0, 0);
Sleep(500);
ListWindows;
end
else MessageBox(Handle, "Select a window to be closed.", "Information",
MB_OK or MB_ICONINFORMATION);
end;

procedure TForm1.RefreshList2Click(Sender: TObject);
begin
ListWindows;
end;

если так не понятно то она лежет в кладовке под названием
"Информация о системе" она добавлена 24 декабря.


 
Digitman ©   (2003-12-24 08:14) [1]

это ты что ж, получается, чужой код за собственноручно написанный выдать хочешь ? так что ли ?


 
Piople ©   (2003-12-24 09:34) [2]

Не хорошо чужие сырцы дыбать. Плагиатов, я бы так мягко говоря, сказал НЕЛЮБЯТ!


 
Рамиль ©   (2003-12-24 09:51) [3]


> Не хорошо чужие сырцы дыбать. Плагиатов, я бы так мягко
> говоря, сказал НЕЛЮБЯТ

Да еще просить разложить все по полочкам у других.


 
REA ©   (2003-12-24 09:53) [4]

Скромненько так. А ключ от квартиры где деньги лежат?


 
Тимохов ©   (2003-12-24 12:58) [5]

Братцы, у меня тут один модулек не получается (44тыс строк). Может кто поможет. Только описывать что должно быть не буду - нудное это дело.

Может кто поможет?

:)))


 
VMcL ©   (2003-12-24 15:43) [6]

>>Тимохов © (24.12.03 12:58) [5]

Я помогу, скока денег? :))


 
Тимохов ©   (2003-12-24 15:46) [7]

:)))


 
MVova ©   (2003-12-24 18:43) [8]


> VMcL © (24.12.03 15:43) [6]

Можешь бесплатно, мы денег не берем :)



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
3-49427
Luio
2003-12-18 12:24
2004.01.16
Работа с IB без сервера


14-49743
Nick-From
2003-12-22 10:45
2004.01.16
Один из способов заработка - ваши мнения


1-49538
Navi
2004-01-01 13:57
2004.01.16
Мерцание при перерисовке


1-49486
Vl_
2004-01-03 20:34
2004.01.16
МАТРИЦЫ


7-49792
Yaro
2003-11-03 02:09
2004.01.16
Распределение видеопамяти у разных пользователей...