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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2012, 21:40   #1
Ice_Han
Пользователь
 
Регистрация: 27.11.2011
Сообщений: 21
Восклицание Как узнать ИД процесса?

Имеется
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  ListBox1.Clear;
  ListBox2.Clear;
  ListBox3.Clear;
  HandleSnapShot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  //get the list of process
  if HandleSnapShot <> INVALID_HANDLE_VALUE then
  begin
    EntryParentProc.dwSize := SizeOf(EntryParentProc);
    if Process32First(HandleSnapShot, EntryParentProc) then   //Get the first process in the list
    begin
      listbox1.Items.add( Format('%-30s',['Process'])  );
//      with ListView1.Items.add do begin
//      Caption := 'sdf2';
//      ImageIndex := 0;
//      end;
      listbox2.Items.add( Format('%-20s',['Start'])  );
      listbox3.Items.add( Format('%-16s',['Running Time'])  );
      ActualTime:=Now;
      repeat
          h:=OpenProcess(PROCESS_QUERY_INFORMATION,false,EntryParentProc.th32ProcessID);  //open a particular process
          if GetProcessTimes(h, DummyCreateFileTime, DummyExitFileTime, DummyKernelFileTime, DummyUserFileTime) then  //get the timing  info
          begin
            aFileName:=EntryParentProc.szExeFile;
//            bFileName:=ParamStr(0);
//            AssignFile(File1, 'File.txt');
//            {$I-}
//            Append (File1);
//            {$I+}
//            if IOResult <> 0
//              then Rewrite(File1);
//              WriteLn(File1,bFileName);
//              CloseFile(File1);
            CreationTime:=FileTime2DateTime(DummyCreateFileTime); //get the initial time of the process
            Dif :=  ActualTime-CreationTime; //calculate the elapsed time
            ListBox1.Items.Add( Format('%-30s',[aFileName])  );
            listbox2.Items.add( Format('%-20s',[FormatDateTime('DD-MM-YYYY HH:NN:SS',CreationTime)])  );
            listbox3.Items.add( Format('%-16s',[FormatDateTime('HH:NN:SS',Dif)])  );
          end;
          CloseHandle(h);
      until not Process32Next(HandleSnapShot, EntryParentProc);
    end;
    CloseHandle(HandleSnapShot);
  end;
end;

Как добавить ИД процесса, к примеру в Listbox3?

Последний раз редактировалось Stilet; 04.04.2012 в 21:59.
Ice_Han вне форума Ответить с цитированием
Старый 04.04.2012, 22:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
listbox3.Items.add(inttostr(EntryParentProc.th32ProcessID) );
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2012, 21:24   #3
Ice_Han
Пользователь
 
Регистрация: 27.11.2011
Сообщений: 21
По умолчанию

Огромное СПАСИБО!
Ice_Han вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в делфи узнать время старта процесса? Ice_Han Помощь студентам 3 25.09.2012 11:51
Как из 32бит проги узнать имя 64бит процесса по дескриптору окна? Diego__ Win Api 2 07.12.2010 20:38
Узнать дескриптор процесса, блокирующего USB Denager Общие вопросы Delphi 3 01.07.2010 16:09
как узнать Pid процесса которому принадлежит окно Пепел Феникса Win Api 3 13.04.2009 13:37
Узнать характеристики процесса miha030880 Win Api 6 09.01.2009 16:48