![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить, что Dial-up соединение уже установлено? [D5, Win2k]
Puzzle © (2003-04-02 12:32:00)Мастера, подскажите пожалуйста, как при старте программы определить, что Dial-up соединение уже установлено?
Использую компонент TMagRasCon.
Jel (2003-04-03 15:33:00) [1]Вот кусок из работающего проекта.
function TForm1.CheckConnection(EntryName: string): boolean;
var
ConnectionList : array [0..7] of TRasConn;
CLSize, i, CLCount : integer;
Res : boolean;
s : string;
RCS : TRasConnStatus;
begin
ConnectionList[0].dwSize := SizeOf(TRasConn);
CLSize := SizeOf(TRasConn) * 8;
if RasEnumConnections(@ConnectionList[0], CLSize, CLCount) = 0 then begin
res := false;
for i := 0 to CLCount - 1 do begin
s := ConnectionList[i].szEntryName;
if UpperCase(s) = UpperCase(EntryName) then begin
ZeroMemory(@RCS, SizeOf(RCS));
RCS.dwSize := SizeOf(RCS);
RasGetConnectStatus(ConnectionList[i].hrasconn, RCS);
if RCS.rasconnstate = RASCS_CONNECTED then res := true;
end;
end;
Result := res;
end else Result := false;
end;
Ruf (2003-04-03 14:56:00) [2]Это конечно бред, но можно проверить соединение с инетом, те
открыть какай-нибудь URL
wal (2003-04-02 23:26:00) [3]Дык ...
В хелпе же все русским по белому написано (правда по аглицки, но это мелочи).
// Создаешь массив
var a:array[0..0]of RASCONN; //[0..0] - сугубо для примера
// Пару даблвордов
i,j:DWORD;
begin
i:=SizeOf(a);
a[0].dwSize:=SizeOf(RASCONN);
if (RasEnumConnections(@a,i,j)=0)and(j>0) then
begin
// Вот тут-то мы и выяснили, что у нас существует соединение
end;
end;
Puzzle (2003-04-02 13:38:00) [4]> wal, я в общем-то так и думал, но как пользоваться этой функцией не подскажешь? Если не трудно, напиши небольшой примерчик.
wal (2003-04-02 12:57:00) [5]RasEnumConnections