Форум: "Потрепаться";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Внизпомогите с описанием функции Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c