Форум: "Сети";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
ВнизОтследить событие RAS-соединения Найти похожие ветки
← →
Falcao (2006-10-08 16:46) [0]Здравствуйте, уважаемые Дельфины.
Подскажите, пожалуйста, что я делаю не так.
Из описания 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-09 17:22) [1]Роуз_?
Ребят, ни кто не в курсе? - не верю.
← →
Ketmar © (2006-10-09 17:26) [2]упорно искал в ней третий параметр. не нашёл.
← →
Falcao (2006-10-09 17:44) [3]какой третий параметр? =) не понял. О чем ты? Вот код, представленный мной - и есть те самые три параметра. Вот её описание:
DWORD APIENTRY RasConnectionNotification( HRASCONN, HANDLE, DWORD );
← →
Falcao (2006-10-09 17:48) [4]ААА! Ketmar, про описание в мануале? Да, там не верно описано.
На самом деле вот три параметра. Т.е. про параметр типа HRASCONN не описано, но я думаю, туда записывается созданное соединение. Созданное - в смысле появившееся, и не важно мы его произвели, или система. Вроде так.
Спасибо, что откликнулись =)
← →
Ketmar © (2006-10-09 18:03) [5]угу, блин. есть такая фигня. заглянул в 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-10 16:48) [6]"не RASCONN, а HRASCONN"
d = RasConnectionNotification( r.hrasconn, h,
RASCN_Connection);
r.hrasconn это и есть HRASCONN :) Вот и проблема...
← →
Ketmar © (2006-10-10 16:55) [7]да. спать мне надо больше. но всё равно -- чему у тебя этот хэндл равен? уж никак не -1 (INVALID_HANDLE_VALUE). %-)
← →
Falcao (2006-10-10 18:50) [8]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 19:12) [9]внимательно втыкай в [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."
← →
Ketmar © (2006-10-10 19:13) [10]>[8] Falcao 10-Oct-2006, 18:50
>Ketmar, спасибо за ответы.
странно. обычно ругаются. %-)
← →
Falcao (2006-10-11 20:57) [11]Прошу прощения, может я понял("втыкнул") опять не так, как нужно.
Я понял, что если параметр HRASCONN -1, то возвращается перечисления всех RAS-соединений системы.
Ругайте, если не в ту сторону опять...
← →
Falcao (2006-10-12 14:08) [12]Вроде как разобрался. Спасибо за внимание.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c