-
Приветствую, коллеги!
Подключаю в свой проект возможность автоматического создания dialup-соединения. Обнаружил в процессе интересный эффект.
Допустим, создаем соединение при помощи RasDial(...)
пока оно создается, снимаем задачу нашего приложения. смотрим в диспетчере соединений, у данного соединения статус "Подключение". Винда ничего не позволяет с ним сделать: ни отключить ни подключить. Пытаюсь найти его программно при помощи RasEnumConnections(...) - не нахожу, потому как видимо оно еще не подключено. Как быть? как найти и программно оживить или прибить такое соединение? Кто сталкивался?
-
UPD: если попытаться снова открыть это соединение при помощи RasDial, то получаем ошибку, что соединение уже установлено
-
UPD2: Собственно проблема свелась к тому, как получить хэндл такого зависшего соединения? RasEnumConnections нам его не находит, RasDial возвращет ошибку и хэндл оставляет нулевым. Нашел драконовское решение: перебираем всевозможные хэндлы HR и говорим им RasHangUp(HR). Работает, но медленно :)
-
а разве при создании соединения у него нет имени?
-
то есть, разве нельзя использовать, как сказано в мсдн, rasdial "EAST OFFICE" /d ?
-
DWORD RasDial(
LPRASDIALEXTENSIONS lpRasDialExtensions,
LPCTSTR lpszPhonebook,
LPRASDIALPARAMS lpRasDialParams,
DWORD dwNotifierType,
LPVOID lpvNotifier,
LPHRASCONN lphRasConn
); и куда тут передавать East Office? :) Собственно, с установлением соединения проблем нет, есть проблема с зависшим соединением. Оно легко отрубается при помощи RasHangUp, но нужен Handle. А вот его взять негде.
-
> и куда тут передавать East Office? :)
судя по всему, lpszPhonebook
-
судя по всему, lpszPhonebook еще раз: с установлением соединения проблем нет, есть проблема с зависшим соединением
-
да я понял. Простро из справки, я так понял, что с какой фонебучной записью соединение создается, то с той и грохается. и это единственная привязка.
-
> KilkennyCat © (29.12.08 10:23) [8] > да я понял. Простро из справки, я так понял, что с какой > фонебучной записью соединение создается, то с той и грохается. > и это единственная привязка.
phonebook я не использую. Получаю сразу RASDIALPARAMS при помощи RasGetEntryDialParams по имени соединения
|