Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

RasAPI получить список номеров dial-up соединения   Найти похожие ветки 

 
Дмитрий_05   (2005-12-11 10:56) [0]

RasApi как получить список номеров соединения? Сделал вот как:

procedure TForm1.Button1Click(Sender: TObject);
var
R: Integer;
Fp: LongBool;
dwEntryInfoSize, dwDeviceInfoSize: LongInt;
EntryParam: TRasEntry;
dParam : TRasDialParams;
begin
FillChar(dParam, SizeOf(TRasDialParams), 0);
dwEntryInfoSize := SizeOf(TRasEntry);
dwDeviceInfoSize := 0;
with dParam do
 begin
 dwSize := SizeOf(TRasDialParams);
 StrPCopy(szEntryName, "MTU");
 end;

R := RasGetEntryDialParams(nil, dParam, Fp);

EntryParam.dwSize := SizeOf(TRasEntry);
RasGetEntryPropertiesA(nil, dParam.szEntryName, @EntryParam, dwEntryInfoSize, nil, dwDeviceInfoSize);

if R = 0 then
 begin
 Edit2.Text := dParam.szUserName;
 Edit3.Text := dParam.szPassword;
 Edit4.Text := dParam.szPhoneNumber;
 end;
end;

В соединении "MTU" несколько телефонов, так вот у меня ниодного не показывается в Edit4.Text


 
Набережных С. ©   (2005-12-11 11:56) [1]


> Дмитрий_05

Возможно, дело в этом:

> dwEntryInfoSize := SizeOf(TRasEntry);

> RasGetEntryPropertiesA(nil, dParam.szEntryName, @EntryParam,
>  dwEntryInfoSize, nil, dwDeviceInfoSize);

From MSDN:

lpdwEntryInfoSize
[in, out] Pointer to a variable that, on input, specifies the size, in bytes, of the lpRasEntry buffer.
On output, this variable receives the number of bytes required.

This parameter can be NULL if the lpRasEntry parameter is NULL.

To determine the required buffer size, call RasGetEntryProperties with lpRasEntry set to NULL and *lpdwEntryInfoSize set to zero. The function returns the required buffer size in *lpdwEntryInfoSize.


 
Дмитрий_05   (2005-12-12 05:42) [2]

а можно ли сделать чтобы все телефоны в соединении помещались, скажем в ListBox например...


 
Дмитрий_05   (2005-12-12 13:19) [3]

И еще такой вопрос... Я хочу сделать звонилку с перебором нескольких номеров, но чтоб на 98-ом тоже перебиралось... но там на сколько мне не изменяет память в соединениях нельзя добавлять больше одного номера... вот как лучше сделать хранение номеров, чтоб под 98-ым и XP шло... я конечно понимаю, можно хранить их в каком-нибудь файле.... но может в XP лучше будет в соединении дописывать?


 
VirEx ©   (2005-12-14 17:28) [4]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Memo1: TMemo;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

type
 TMibIfRow = packed 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;
 TMibIfArray = array [0..512] of TMibIfRow;
 PMibIfRow = ^TMibIfRow;
 PmibIfArray = ^TmibIfArray;

type
TMibIfTable = packed record
 dwNumEntries : DWORD;//кол-во соединений
 Table     : TMibIfArray;
end;
PMibIfTable = ^ TMibIfTable;

var
 Form1: TForm1;
 GetIfTable:function(pIfTable: pMibIfTable; pdwSize:puLONG; bOrder:boolean):DWORD;stdcall;
 //GetAdaptersInfo:function(buff,s:pointer):DWORD;stdcall;
 Table   : tMibIfTable;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 h:THandle;
 i,Size:integer;
 buff:array [0..1024] of byte;
begin
h := LoadLibrary("IPHLPAPI.DLL"); //Загружаем библиотеку
if h = 0 then Exit;
@GetIfTable := GetProcAddress(h, "GetIfTable");
Size:=SizeOf(Table);
GetIfTable(@Table, @Size, False );

memo1.Lines.Clear;
for i:=0 to Table.dwNumEntries do begin
memo1.Lines.Add(Table.Table[i].bDescr);

//Table.Table[i].dwIndex;

memo1.Lines.Add(inttostr(Table.Table[i].dwType));
{
Table.Table[i].dwMtu;
Table.Table[i].dwSpeed;
Table.Table[i].dwPhysAddrLen;
}
memo1.Lines.Add(format("MAC: %d.%d.%d.%d.%d.%d.%d.%d.",
[Table.Table[i].bPhysAddr[0],
Table.Table[i].bPhysAddr[1],
Table.Table[i].bPhysAddr[2],
Table.Table[i].bPhysAddr[3],
Table.Table[i].bPhysAddr[4],
Table.Table[i].bPhysAddr[5],
Table.Table[i].bPhysAddr[6],
Table.Table[i].bPhysAddr[7]
]));
{
Table.Table[i].dwAdminStatus;
Table.Table[i].dwOperStatus;
Table.Table[i].dwLastChange;
Table.Table[i].dwInOctets;
Table.Table[i].dwInUcastPkts;
Table.Table[i].dwInNUCastPkts;
Table.Table[i].dwInDiscards;
Table.Table[i].dwInErrors;
Table.Table[i].dwInUnknownProtos;
Table.Table[i].dwOutOctets;
Table.Table[i].dwOutUCastPkts;
Table.Table[i].dwOutNUCastPkts;
Table.Table[i].dwOutDiscards;
Table.Table[i].dwOutErrors;
Table.Table[i].dwOutQLen;
Table.Table[i].dwDescrLen;
}
memo1.Lines.Add("");
end;

FreeLibrary(h);
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
1-1138875687
OlegNik
2006-02-02 13:21
2006.03.05
Как программно работать с реестром?


2-1139988070
ZeFiR
2006-02-15 10:21
2006.03.05
Эмулирование классов...


2-1139997378
VanDet
2006-02-15 12:56
2006.03.05
Напишите мне пожалуйста код программы 2


2-1139890063
Азат
2006-02-14 07:07
2006.03.05
функции в Делфи для работы с динам. памятью


1-1138567799
Tamolikin
2006-01-29 23:49
2006.03.05
Про микровидеокамеру для скрытой съемки - купить цена продажа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский