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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GetProcessIOCounters 
:(
    Опции темы
NetDigger
Дата 15.12.2004, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте, уважаемые. Возникли проблемы с использованием функции GetProcesIOCounters - в чем дело не пойму
Код
type
IO_COUNTERS = ^_IO_COUNTERS;
_IO_COUNTERS = record
ReadOperationCount: int64;
WriteOperationCount: int64;
OtherOperationCount: int64;
ReadTransferCount: int64;
WriteTransferCount: int64;
OtherTransferCount: int64;
End;

function GetProcessIoCounters(hProcess: THandle; PIO_COUNTERS:pointer):Boolean; stdcall; external 'kernel32.dll';

procedure TForm1.Button1Click(Sender: TObject);
Var
PIDArray: array [0..1023] of DWORD;
cb: DWORD;
I: Integer;
ProcCount: Integer;
hProcess: THandle;
M : IO_COUNTERS;
begin
EnumProcesses(@PIDArray, SizeOf(PIDArray), cb);
ProcCount := cb div SizeOf(DWORD);
getMem( m, sizeof(_IO_COUNTERS));
for I := 0 to ProcCount - 1 do
begin
  hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or
  PROCESS_VM_READ,
  False,
  PIDArray[I]);
if not(GetProcessIoCounters( hProcess, M)) then Halt;
End;

end;


Это сообщение отредактировал(а) Girder - 15.12.2004, 13:15
PM MAIL   Вверх
Girder
Дата 15.12.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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

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



типо так... smile
Код
type
TIO_COUNTERS = record
 ReadOperationCount: int64;
 WriteOperationCount: int64;
 OtherOperationCount: int64;
 ReadTransferCount: int64;
 WriteTransferCount: int64;
 OtherTransferCount: int64;
end;

function GetProcessIoCounters(hProcess:Cardinal; var IoCounters:TIO_COUNTERS):Bool; stdcall; external 'kernel32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var i:TIO_COUNTERS;
   OP:Cardinal;
begin
OP:=OpenProcess(PROCESS_QUERY_INFORMATION,false,GetCurrentProcessID);
if OP<>0 then
 begin
  if GetProcessIoCounters(OP,i) then
   ShowMessage('Все Ok! (OTC: '+IntToStr(i.OtherTransferCount)+')');
  CloseHandle(OP);
 end;
end;


Удачи.


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

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

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

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

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

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


 




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


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

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