Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Вниз
RAS Найти похожие ветки
← →
Separator © (2005-01-21 14:40) [0]Мне нужно получить имена всех подключений доступных на компе.
Пишу так:var
Res: Longint;
RasEntryName: TRasEntryName;
lpcb: Longint;
lpcEntries: Longint;
begin
cmbxName.Items.Clear;
lpcb:= SizeOf(RasEntryName);
RasEntryName.dwSize:= lpcb;
Res:= RasEnumEntries(nil, nil, @RasEntryName, lpcb, lpcEntries);
cmbxName.Items.Text:= RasEntryName.szEntryName
end;
Обьясните подробно чего нужно делать, а то так, как пишу я не работает.
Конкретный вопрос:
в lpcb нужно передавать размер буфера, какого? Размер всей структуры, как сделал я или размер RasEntryName.szEntryName
← →
Piter © (2005-01-21 14:49) [1]Вырезка из моего компонента:
var
pEntries, P: PRasEntryName;
EntriesSize, CountEntries, Res: LongWord;
RasCon: TRasConnection ;
i: integer;
begin
EntriesSize := SizeOf(TRasEntryName);
New(pEntries);
try
pEntries^.dwSize := EntriesSize;
Res := RasEnumEntries(nil, nil, pEntries, EntriesSize, CountEntries);
if Res = ERROR_BUFFER_TOO_SMALL then
begin
ReallocMem(pEntries, EntriesSize);
pEntries^.dwSize := SizeOf(TRasEntryName);
Res := RasEnumEntries(nil, nil, pEntries, EntriesSize, CountEntries);
end;
if Res = SUCCESS then
begin
P := pEntries;
for I := 1 to CountEntries do
begin
Здесь перечисляются все соединения
Информация о них содержится в структуре P^
end;
end;
finally
FreeMem(pEntries);
end;
← →
Separator © (2005-01-21 15:04) [2]// Здесь перечисляются все соединения
// Информация о них содержится в структуре P^
Это место можно поподробней? Чтот не получается.
← →
Separator © (2005-01-21 15:24) [3]Ч пишу так:
if Res = SUCCESS then begin
P:= pEntries;
cmbxName.Items.Clear;
for i:= 0 to CountEntries - 1 do begin
cmbxName.Items.Add(LPRasEntryName(Integer(P) + EntriesSize * i)^.szEntryName)
end
end
Как правильно?
если использовать простоP^.szEntryName
то там только название первого соединения, а как получить второе и дальше?
← →
Sicilla © (2005-01-21 15:51) [4]Скачай какой-нибудь компононет для работы с этим... Как я:))
← →
Separator © (2005-01-21 15:56) [5]А я хочу научиться работать именно с Ras структурами, мне в дальнейшем много для чего нужен будет ras модуль
← →
andrey__ (2005-01-21 16:10) [6]Посмотри это то?
//помещает в AllEntries названия всех удал. подключений
//AllEntries : TStrings;
procedure GetRasEntriesAll;
var
BuffSize : Integer;
Entries : Integer;
Entry : Array[1..MaxEntries] of TRasEntryName;
X,Result_ : Integer;
begin
Entry[1].dwSize:=SizeOf(TRasEntryName);
BuffSize:=SizeOf(TRasEntryName)*MaxEntries;
Result_:=RasEnumEntries(nil, nil, @Entry[1], BuffSize, Entries);
If (Result_=0) and (Entries>0) then
Begin
For X:=1 To Entries Do
Begin
AllEntries.Add(Entry[x].szEntryName);
End;
End;
end;
← →
Piter © (2005-01-21 16:46) [7]Separator © (21.01.05 14:40)
а вообще, справку не читаем из принципиальных, религиозных убеждений?
Обьясните подробно чего нужно делать, а то так, как пишу я не работает
The RasEnumEntries function lists all entry names in a remote access phone book.
в lpcb нужно передавать размер буфера, какого?
Points to a variable that contains the size, in bytes, of the buffer specified by lprasentryname. On return, the function sets this variable to the number of bytes required to successfully complete the call.
Размер всей структуры, как сделал я или размер RasEntryName.szEntryName
а что, разве в RasEntryName.szEntryName не содержится размер всей структуры?
← →
Piter © (2005-01-21 16:48) [8]Separator © (21.01.05 15:24) [3]
если использовать просто P^.szEntryName то там только название первого соединения
Ну блин, мог бы и догадаться:P := pEntries;
for I := 1 to CountEntries do
begin
Здесь перечисляются все соединения
Информация о них содержится в структуре P^
inc(P);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.055 c