Форум: "Сети";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Внизпрограмма для учета переданной у полученной информации Найти похожие ветки
← →
Naduev Aleksei © (2006-04-29 03:26) [0]Как уменьшить код программы.
Зачем в коде применяется {$S-,R-,B-}
Как узнать какие переменные использует библиотека?
Как работает функция GetIfTable?
Для чего Size := SizeOf(Table);
Это часть исходного кода программы it с сайта http://www.programania.com/
unit Unit1;
{$S-,R-,B-}
interface
uses
Windows, SysUtils, Forms, Dialogs, ComCtrls,
Controls, ExtCtrls, Classes, StdCtrls, messages;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
type
TMibIfRow = record
wszName : array[0..255] of WideChar;
dwIndex : DWORD;
dwType : DWORD;
dwMtu : DWORD;
dwSpeed : DWORD;
dwPhysAddrLen : DWORD;
bPhysAddr : array[0..7] of Byte;
dwAdminStatus : DWORD;
dwOperStatus : DWORD;
dwLastChange : DWORD;
dwInOctets : DWORD;
dwInUcastPkts : DWORD;
dwInNUCastPkts : DWORD;
dwInDiscards : DWORD;
dwInErrors : DWORD;
dwInUnknownProtos : DWORD;
dwOutOctets : DWORD;
dwOutUCastPkts : DWORD;
dwOutNUCastPkts : DWORD;
dwOutDiscards : DWORD;
dwOutErrors : DWORD;
dwOutQLen : DWORD;
dwDescrLen : DWORD;
bDescr : array[0..255] of Char;
end;
type
TMibIfTable = record
dwNumEntries : DWORD;
Table : array [0..512] of TMibIfRow;
end;
PMibIfTable = ^ TMibIfTable;
var
GetIfTable:function(pIfTable: pMibIfTable; pdwSize:puLONG; bOrder:boolean):DWORD;stdcall;
FLibHandle: tHandle;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
BEGIN
FLibHandle := LoadLibrary("IPHLPAPI.DLL");
@GetIfTable := GetProcAddress(FLibHandle, "GetIfTable");
timer1.enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Table : tMibIfTable;
size : integer;
begin
timer1.Enabled:=false;
Size := SizeOf(Table);
GetIfTable(@Table, @Size, false );
begin
//получено байт
showmessage(inttostr(Table.Table[0].dwInOctets));
//передано байт
showmessage(inttostr(Table.Table[0].dwOutOctets));
end;
timer1.Enabled:=true;
end;
end.
← →
tesseract © (2006-04-29 11:54) [1]учиться, учиться и ещё F1
← →
programania © (2006-04-30 23:04) [2]>Как уменьшить код программы.
Удалить #13#10 в строках 396 и 421
>Зачем в коде применяется {$S-,R-,B-}
Для небольшого уменьшения exe программы и ускорения
>Как работает функция GetIfTable?
Как магическое заклинание
>Как узнать какие переменные использует библиотека?
Найти пример ее использования по ее имени
Например статью указаную в unit1.pas
http://delphimaster.ru/articles/netmon/index.html
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c