Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отследить событие RAS-соединения


Falcao ©   (2006-10-08 16:46:00) 

Здравствуйте, уважаемые Дельфины.
Подскажите, пожалуйста, что я делаю не так.
Из описания RasConnectionNotification следует, что с её помощью мы можем отоловить момент появления нового RAS-соединения. Но вот не катит что-то... Или я не правильно понял смысл этой ф-ии? Вот кусок:
//________
HANDLE h = NULL;
RASCONN r;
r.dwSize = sizeof(RASCONN);
RASCONNSTATUS rs;
rs.dwSize = sizeof(RASCONNSTATUS);
h = CreateEvent( NULL, false, true, NULL);
DWORD d = 0;
d = RasConnectionNotification( r.hrasconn, h,
  RASCN_Connection);
//................
//________
Симптомы: возвращаемое значение не нуль -> ошибка.

/*видел, каг была зарублена подобного рода тема в виду подозрения, что человек пишет спам-машину.
Но я - не спамер=))) гы.*/


Falcao   (2006-10-12 14:08:00) [1]

Вроде как разобрался. Спасибо за внимание.


Falcao   (2006-10-11 20:57:00) [2]

Прошу прощения, может я понял("втыкнул") опять не так, как нужно.
Я понял, что если параметр HRASCONN -1, то возвращается перечисления всех RAS-соединений системы.
Ругайте, если не в ту сторону опять...


Ketmar   (2006-10-10 19:13:00) [3]

>[8] Falcao 10-Oct-2006, 18:50
>Ketmar, спасибо за ответы.
странно. обычно ругаются. %-)


Ketmar   (2006-10-10 19:12:00) [4]

внимательно втыкай в [5]. особенно во фразу "returned by the RasDial or RasEnumConnections function. If this parameter is INVALID_HANDLE_VALUE, notifications are received for all RAS connections on the local computer."


Falcao   (2006-10-10 18:50:00) [5]

Handle to the RAS connection for which to receive notifications. This can be a handle returned by the RasDial or RasEnumConnections function. If this parameter is INVALID_HANDLE_VALUE, notifications are received for all RAS connections on the local computer.
В том-то и дело. Я так понял, что событие отрабатывает для всех соединений в системе.
Но "This can be a handle returned by the RasDial or RasEnumConnections function" вот не понял - то ли действительно нужно передавать существующий дескриптор соединения, или _можно_ ("can") передавать существующий, но необязательно.
Видимо, нужно передавать существующий. Тогда как отловить момент соединения? Есть еще вариант смотреть в списке процессов rasdial.exe, или постоянно проверять есть соединение, аль нет. Но это не есть хорошо.
Ketmar, спасибо за ответы.


Ketmar   (2006-10-10 16:55:00) [6]

да. спать мне надо больше. но всё равно -- чему у тебя этот хэндл равен? уж никак не -1 (INVALID_HANDLE_VALUE). %-)


Falcao   (2006-10-10 16:48:00) [7]

"не RASCONN, а HRASCONN"
d = RasConnectionNotification( r.hrasconn, h,
 RASCN_Connection);
r.hrasconn это и есть HRASCONN :) Вот и проблема...


Ketmar   (2006-10-09 18:03:00) [8]

угу, блин. есть такая фигня. заглянул в MSDN -- там правильно. %-) извиняюсь.

цитирую из MSDN:

hrasconn
[in] Handle to the RAS connection for which to receive notifications. This can be a handle returned by the RasDial or RasEnumConnections function. If this parameter is INVALID_HANDLE_VALUE, notifications are received for all RAS connections on the local computer.


а ты вместо хэндла что, пардон, передаешь? %-) не RASCONN, а HRASCONN. %-) хэндл, то бишь.


Falcao   (2006-10-09 17:48:00) [9]

ААА! Ketmar, про описание в мануале? Да, там не верно описано.
На самом деле вот три параметра. Т.е. про параметр типа HRASCONN не описано, но я думаю, туда записывается созданное соединение. Созданное - в смысле появившееся, и не важно мы его произвели, или система. Вроде так.
Спасибо, что откликнулись =)


Falcao   (2006-10-09 17:44:00) [10]

какой третий параметр? =) не понял. О чем ты? Вот код, представленный мной - и есть те самые три параметра. Вот её описание:
DWORD APIENTRY RasConnectionNotification( HRASCONN, HANDLE, DWORD );


Ketmar   (2006-10-09 17:26:00) [11]

упорно искал в ней третий параметр. не нашёл.


Falcao   (2006-10-09 17:22:00) [12]

Роуз_?
Ребят, ни кто не в курсе? - не верю.


Наверх

Титульная страница Поиск, карта сайта Написать письмо