![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить зарегистрированные в системе TAPI-линии
d@vinchi © (2009-03-04 23:18:00)Как получить список провайдеров телефоний (те что в панели управлениея -> телефон и модем -> вкладка дополнительно) и список TAPI линий который каждый из них зарегистрировал в системе?
GanibalLector (2009-03-09 17:06:00) [1]Качни TApi.pas и примерно так(код большой, поэтому привожу нужную часть)
//
I:=LineInitialize(FLineApp, 0, @LineCallback, nil, FDeviceCount);
if (I=0) and (FDeviceCount<>0) then
begin
// получаем имена модемов
GetMem(LDC, DevCapsAllocSize);
try
for I:=0 to FDeviceCount-1 do
begin
if not TapiFailed(LineNegotiateAPIVersion(FLineApp, I,
$10003, $10003 ,TApiV, ExtId)) then //{$20000}
begin
ZeroMemory(LDC, DevCapsAllocSize);
LDC.dwTotalSize := DevCapsAllocSize;
if not TapiFailed(LineGetDevCaps(FLineApp, I, TApiV, 0, LDC)) then
begin
if (LDC.dwMediaModes and LINEMEDIAMODE_DATAMODEM) =
LINEMEDIAMODE_DATAMODEM then
begin
{$WARNINGS OFF}
SetString(LineName, PChar(Integer(LDC)+LDC.dwLineNameOffset),
LDC.dwLineNameSize - 1);
{$WARNINGS ON}
FListDevice.AddObject(LineName,TObject(I));
end;
end;
end;
end;
finally
FreeMem(LDC);
end;
//