Страница 1 из 1

выбрать модули начиная с буквы из заданного диапазона

Добавлено: 29 май 2008, 21:41
student1234
вот, нужно сделать такую прогу. точнее переделать следующую, изменить нужно чуть-чуть, но где - хз:
-----------------------------------------------
type
TMainForm = class(TForm)
LVMain: TListView;
BStart: TButton;
BExit: TButton;
EFirst: TEdit;
ESecond: TEdit;
Label1: TLabel;
procedure BStartClick(Sender: TObject);
procedure BExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
firstcount:integer;
secondcount: integer;
implementation
{$R *.dfm}
procedure TMainForm.BStartClick(Sender: TObject);
var
T: TProcessEntry32; //процесс
FCurSnap:THandle;
ListItem: TListItem;
// Th: TThreadEntry32; //поток
// FCurSnapThread:THandle;
parent_id: integer;
begin
// диапазон номеров родительских процессов: от и до
firstcount:=StrToInt(Efirst.Text);
secondcount:=StrToInt(Esecond.Text);
T.dwSize := SizeOf(T);
// создать объеект - текущий процесс
FCurSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
LVMain.Items.Clear;
with lvMain do
begin
// делаем снимок процесса
if Process32First(FCurSnap,T) then
repeat
parent_id:=T.th32ParentProcessID; // номер родительского процесса
// если родительский процесс лежит в заданном диапазоне, то
//добавить его в таблицу
if (parent_id>=firstcount) and (parent_id<=secondcount)then
begin
ListItem := Items.Add;
ListItem.Caption :=T.szExeFile;
ListItem.SubItems.Add(IntToStr(T.cntThreads));
ListItem.SubItems.Add(IntToStr(T.th32ProcessID));
ListItem.SubItems.Add(IntToStr(parent_id));
end;
// до тех пор,пока не будут обработаны все процессы
until not Process32Next(FCurSnap, T);
end;
CloseHandle(FCurSnap);
end;
procedure TMainForm.BExitClick(Sender: TObject);
begin
close;
end;
end.
Помогите пожалуйста

Re: выбрать модули начиная с буквы из заданного диапазона

Добавлено: 30 май 2008, 12:18
Хыиуду
1. Сформулируйте нормально задание
2. Пользуйтесь тегами [ syntax=Delphi] или [ code] (без пробела в начале)

Re: выбрать модули начиная с буквы из заданного диапазона

Добавлено: 30 май 2008, 18:04
student1234
задание сформулировано таким образом, каким оно было предложено))

Re: выбрать модули начиная с буквы из заданного диапазона

Добавлено: 30 май 2008, 18:04
student1234
а вообще можно удалять тему - решение проблемы найдено

Re: выбрать модули начиная с буквы из заданного диапазона

Добавлено: 03 июн 2008, 11:55
Хыиуду
student1234 писал(а):задание сформулировано таким образом, каким оно было предложено))

Задание сформулировано так: "Нужно сделать такую прогу". Приведен текст проги. Задание решается путем последовательного нажатия клавиш Ctrl+C, Ctrl+V.
Не сомневаюсь, что таким путем решение проблемы было быстро найдено :)

Re: выбрать модули начиная с буквы из заданного диапазона

Добавлено: 03 июн 2008, 13:48
BBB
Хыиуду, нет-нет, там было сказано, что предложенный текст нужно чуть-чуть изменить :)

Re: выбрать модули начиная с буквы из заданного диапазона

Добавлено: 04 июн 2008, 11:24
Хыиуду
BBB писал(а):Хыиуду, нет-нет, там было сказано, что предложенный текст нужно чуть-чуть изменить :)

Хорошо. Я бы тогда добавил пробелы в начале каждой строки :)

Re: выбрать модули начиная с буквы из заданного диапазона

Добавлено: 04 июн 2008, 12:12
Serge_Bliznykov
:-))

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

А подскажите, если кто без поиска сразу знает ответ, что за процессы получают через нижеприведённый код?

Код: Выделить всё

var
T: TProcessEntry32; //процесс
...
if Process32First(FCurSnap,T) then
repeat
  parent_id:=T.th32ParentProcessID; // номер родительского процесса