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

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

RasEnumConnections


StriderMan ©   (2008-12-26 16:25:00) 

Приветствую, коллеги!

Подключаю в свой проект возможность автоматического создания dialup-соединения. Обнаружил в процессе интересный эффект.

Допустим, создаем соединение при помощи
RasDial(...)

пока оно создается, снимаем задачу нашего приложения. смотрим в диспетчере соединений, у данного соединения статус "Подключение". Винда ничего не позволяет с ним сделать: ни отключить ни подключить. Пытаюсь найти его программно при помощи
RasEnumConnections(...)
- не нахожу, потому как видимо оно еще не подключено. Как быть? как найти и программно оживить или прибить такое соединение? Кто сталкивался?


StriderMan   (2008-12-29 12:04:00) [1]


> KilkennyCat ©   (29.12.08 10:23) [8]
> да я понял. Простро из справки, я так понял, что с какой
> фонебучной записью соединение создается, то с той и грохается.
>  и это единственная привязка.

phonebook я не использую. Получаю сразу RASDIALPARAMSпри помощи RasGetEntryDialParamsпо имени соединения


KilkennyCat   (2008-12-29 10:23:00) [2]

да я понял. Простро из справки, я так понял, что с какой фонебучной записью соединение создается, то с той и грохается. и это единственная привязка.


StriderMan   (2008-12-29 08:07:00) [3]

судя по всему, lpszPhonebook
еще раз:
с установлением соединения проблем нет, есть проблема с зависшим соединением


KilkennyCat   (2008-12-28 22:43:00) [4]


> и куда тут передавать East Office? :)

судя по всему, lpszPhonebook


StriderMan   (2008-12-28 20:54:00) [5]

DWORD RasDial(
 LPRASDIALEXTENSIONS lpRasDialExtensions,
 LPCTSTR lpszPhonebook,
 LPRASDIALPARAMS lpRasDialParams,
 DWORD dwNotifierType,
 LPVOID lpvNotifier,
 LPHRASCONN lphRasConn
);


и куда тут передавать East Office? :)
Собственно, с установлением соединения проблем нет, есть проблема с зависшим соединением. Оно легко отрубается при помощи RasHangUp, но нужен Handle. А вот его взять негде.


KilkennyCat   (2008-12-27 16:10:00) [6]

то есть, разве нельзя использовать, как сказано в мсдн, rasdial "EAST OFFICE" /d ?


KilkennyCat   (2008-12-27 16:07:00) [7]

а разве при создании соединения у него нет имени?


StriderMan   (2008-12-26 18:24:00) [8]

UPD2: Собственно проблема свелась к тому, как получить хэндл такого зависшего соединения?
RasEnumConnections нам его не находит, RasDial возвращет ошибку и хэндл оставляет нулевым. Нашел драконовское решение: перебираем всевозможные хэндлы HR и говорим им RasHangUp(HR). Работает, но медленно :)


StriderMan   (2008-12-26 16:42:00) [9]

UPD: если попытаться снова открыть это соединение при помощи RasDial, то получаем ошибку, что соединение уже установлено


Наверх

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