Алё Алё звоню тебе Алё Алё и в тишине Я слышу длинные гудки Кто поёт не знаю, только что по радио пели :-)
Будем изменять свой RAS. Это так удобно.
Изменение только внутри цикла
...... if( RasEnumConnections( ras, &dSize, &dNumber ) == 0 ) { for (DWORD x=0; x < dNumber;x++) { RasHangUp(ras[x].hrasconn); } } ......
В записях структуры RASCONN есть хорошая переменная hrasconn, которая является идентификатором соединения. Это очень хорошо. Во времена язычества имя человека являлось секретом. И все обращались друг к другу по кличкам. Ведь считалось, что знание имени человека это ключ к нему. Знание имени человека это и ключ для черной магии. Вот так. А эта переменная ключ к соединению. На основании этого ключа мы можем с соединением делать всё, что хотим.
Итак, считываем все соединения. Получаем идентификатор соединения, а потом функцией RasHangUp() его прерываем. Если всё удалось, то функция вернет 0.
Создавайте и запускайте программу. Устанавливайте соединение и запускайте программу. Соединение прервется.
Следует отметить, что функция возвращает значения удачности операции прерывания соединения. Я хочу обратиться к Вам с обращением на мысль об идентификаторе(кодовом имени). Идея идентификатора проходит через всё программирование Windows. Получив его вы можете делать всё, что захотите. Например, можно получить идентификатор рабочего стола и натворить там бед.
Возьмите идентификатор:
ras[x].hrasconn
Положите трубку:
RasHangUp(......);