Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2010, 23:06   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Вопрос [Проблема]Свой ProcessList через ListView

На форме есть:
1-на кнопка.
1-ин ListView.

ListView1:
ViewStyle=vsReport
Columns:
[0]-Process
[1]-PID
Подключен TIHelp32;

по нажатию кнопки пытаюсь вывести список процессов и передать их PID в Column[1].(хотябы последнее..).

Вот что получается:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Hsnapshot: THandle;
  Pe32: TProcessEntry32;
begin
ListView1.Clear;
Hsnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
Pe32.dwSize:=SizeOf(TProcessEntry32);
while Process32First(Hsnapshot,Pe32) do
begin
  with ListView1.items.add do
  begin
  SubItems.add(IntToStr(Pe32.th32ProcessID));
end;
  CloseHandle(hSnapShot);
end;
end;
Компилируется, но по нажатию кнопки, в колонку PID выводит только 0.
Что я не так делаю?

p.S. Первый раз работаю с TIHelp32, есть ли по нему справочник?
И первый раз использую ListView
В борландской справке должен быть, но я не нашёл... укажите куда копнуть...

прикрепил то что получается(+исходник). подсобите решением данной мелочи..
Вложения
Тип файла: zip 1prj.zip (460.2 Кб, 9 просмотров)

Последний раз редактировалось Человек_Борща; 20.03.2010 в 23:10.
Человек_Борща вне форума Ответить с цитированием
Старый 21.03.2010, 08:28   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Код:
var ExeFile    : String;
    PE         : TProcessEntry32;
    FSnap,Handl: THandle;
    Item: TListItem; 
begin
 //Отслеживаем процессы
 //IF FSnap>0 Then CloseHandle(FSnap);
 FSnap:= Tlhelp32.CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 //
 PE.dwSize:= SizeOf(PE);
 if (Tlhelp32.Process32First(FSnap,PE)) Then
  Repeat
    Item := ListView1.Items.Add;
       Item.Caption := PE32.szExeFile;
       Item.SubItems.Append(IntToStr(Pe32.th32ProcessID));
   Until Not Process32Next(FSnap,PE) 
end
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 21.03.2010 в 08:31.
raxp вне форума Ответить с цитированием
Старый 21.03.2010, 11:00   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

спасибо работает!
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
Небольшая проблема с ListView mixer94 Компоненты Delphi 5 12.08.2009 09:08
проблема с listbox и listview. blackstersl Общие вопросы Delphi 3 06.05.2009 23:31
Проблема с ListView mar4elo Общие вопросы Delphi 5 04.12.2008 14:48
Изменение параметров ListView через ShowMessage Romanbl4 Компоненты Delphi 5 29.06.2007 15:46