Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление списка запущеных процессов 
:(
    Опции темы
darkziman
  Дата 18.4.2012, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.12.2011

Репутация: нет
Всего: нет



здравствуйте, получаю через WMI список запущеных процессов, хочу, чтобы они обновлялись в ListView, решил использовать для этого виртуальный режим ListView, но не могу понять почему у меня всегда чистый список, оно вообще не выводит в listview ничего, хотя во временный массив информацию заносить ...  что я делаю не так ?!

пример кода

Код

unit Unit100000000000000;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, WbemScripting_TLB, ComCtrls, ExtCtrls,Math, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    ListView1: TListView;


type
    //Структура для хранения одной строки
  TSimpleRec=record
      caption:string;
      data:integer;
  end;
    //Массив структур
    TSimpleArr = array of TSimpleRec;


procedure Timer1Timer(Sender: TObject);
procedure ListView1Data(Sender: TObject; Item: TListItem);
procedure FormCreate(Sender: TObject);

private
    arr:TSimpleArr;
    services : ISWbemServices;
    refresher : ISWbemRefresher;
     refresherItem : ISWbemRefreshableItem;

       pObject    : ISWbemObject;

    pid,mem    : cardinal;
//      pItem : TListItem;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
var locator : ISWbemLocator;
    i          : cardinal;

    lc:TListColumn;
begin

    locator := CoSWbemLocator.Create();
    services := locator.ConnectServer('.','root\cimv2','','','','',0,nil);
    refresher := CoSWbemRefresher.Create;
    refresherItem := refresher.AddEnum(services as ISWbemServicesEx,'Win32_PerfFormattedData_PerfProc_Process',0,nil);

    timer1.Enabled := true;
    Refresher.Refresh(0);
  Listview1.OwnerData:=True;

  ListView1.ViewStyle:=vsReport;
  lc:=ListView1.Columns.Add;
  lc.Caption:='PID';
  lc.Width:=150;
  lc:=ListView1.Columns.Add;
  lc.Caption:='Memory';
  lc.Width:=150;

  ListView1.RowSelect:=true;


   SetLength(arr,refresherItem.ObjectSet.Count);

  ListView1.Items.Count:=Length(arr);

  Caption:=IntToStr(Length(arr));


   end;



procedure TForm1.Timer1Timer(Sender: TObject);
var
    i          : cardinal;

begin
   Refresher.Refresh(0);

   SetLength(arr,refresherItem.ObjectSet.Count);

   ListView1.Items.Count:=Length(arr);

   Caption:=IntToStr(Length(arr));

   for i:=0 to refresherItem.ObjectSet.Count-1  do
    begin
      pObject := refresherItem.ObjectSet.ItemIndex(i);
      pid  := pObject.Properties_.Item('IdProcess',0).Get_Value;
     // name := pObject.Properties_.Item('Name',0).Get_Value;
     // usage:= pObject.Properties_.Item('PercentProcessorTime',0).Get_Value;
      mem:= pObject.Properties_.Item('WorkingSetPrivate',0).Get_Value;

      arr[i].caption:=IntToStr(pid);
      arr[i].data:=mem;

      pObject._Release;

    end;


   end;

 procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
 begin
  item.Caption:=arr[item.Index].caption;
  item.SubItems.Add(IntToStr(arr[item.Index].data));
 end;

end.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.4104 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.