Russian Qt Forum
Ноябрь 23, 2024, 19:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как включить/отключить сетевое соединение  (Прочитано 6232 раз)
zoro86
Гость
« : Март 26, 2010, 08:35 »

В Автомате Самообслуживания для передачи данных используется модем simens mc35i,
так вот для того чтобы данные могли отсылаться соответственно поднято соединение по дозвону,

Есть задача опрышивать модем с помощью AT команд но перед этим необходимо освободить порт... то есть разорвать соединение далее опрасить модем... далее опать поднять соединение.
так вот вопрос как можно это реализовать в Wind-е средствами QT Непонимающий...
в Linux системах через exec например я отправлял команды(PON [имя соединения] - поднимаем связь и POFF [имя соединения] - опускаем связь)... Улыбающийся
Записан
0xFF
Гость
« Ответ #1 : Март 26, 2010, 14:03 »

Цитировать
в Linux системах через exec например я отправлял команды(PON [имя соединения] - поднимаем связь и POFF [имя соединения] - опускаем связь)
В Windows rasdial
Записан
Friar
Гость
« Ответ #2 : Март 26, 2010, 14:11 »

Код:
qint32 connectGPRS(QString login,QString pwd,QString connectionName)
{
    RASDIALPARAMS RDP;
    RDP.dwSize=sizeof(RDP);
    _tcscpy(RDP.szEntryName,QStringToTCHAR(connectionName));
    int Pass;
    int res=RasGetEntryDialParams(NULL,&RDP,&Pass);
    if (res!=ERROR_SUCCESS)
    {
        return -1;
    }
    else
    {
        _tcscpy(RDP.szUserName,QStringToTCHAR(login));
        _tcscpy(RDP.szPassword,QStringToTCHAR(pwd));
        RDP.dwSize=sizeof(RDP);
        qDebug()<<QString("connectGPRS: user: %1").arg(TCHARToQString(RDP.szUserName));
        res=RasDial(0,0,&RDP,0,0,&HRC);
        if (res!=ERROR_SUCCESS)
        {
            qDebug()<<QString("Error RasDial: %1").arg(res);
            return -1;
        }
        else
        {
            qDebug()<<QString("RasDial: OK%1").arg((qint32)HRC);
            return 1;
        }
    }
    return 1;
}
соотв в connectionName название соединения, логин и пароль у меня отдельно задаются поэтому вынесено сюда. Так же в .pro файл добавить win32:LIBS += librasapi32
и нужные хедеры прицепить
#ifdef Q_OS_WIN32
    #include "windef.h"
    #include "winbase.h"
    #include "wingdi.h"
    #include "winuser.h"
    #include "psapi.h"
    #include "winsvc.h"
    #include "shellapi.h"
    #include "ras.h"
    #include "tchar.h"
    #include "raserror.h"
    #include "rasdlg.h"
    #include "winreg.h"
#else
#endif
Записан
zoro86
Гость
« Ответ #3 : Март 26, 2010, 14:40 »

Но в Винде у нас есть уже соединение где прописаны и логин и пароль дозвона... нельзя ли его проста поднять?
или я что не правильно понимаю..

и еще один момент ... а как тогда допустим можно получить список сетевых подключений... которые находятся в свойстве сетевого подключения...??

Если я допустим далее знаю имя соединения то как мне его отключить...?
Записан
Friar
Гость
« Ответ #4 : Март 26, 2010, 14:47 »

Все можно сделать с помощью rasapi, как вам было сказано выше. Можно просто по названию соединения его поднять, просто у меня добавлено специально логин пароль. Если я правильно помню, то можно в функции которую я привел выше, просто не передавать логин и пароль и должно будет сработать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.093 секунд. Запросов: 20.