Как программно перезагрузить написанно здесь
http://purebasic.mybb.ru/viewtopic.php?id=6
Можно сделать так, без перезагрузки модема
Код:
InitNetwork() ; Инициализация библиотеки функций, работающей и инетом и локальной сетью
Procedure.s SendModemData(Connect, Command.s) ; Процедура, передающая команду модему и получающая от него ответ
Protected Result.s="", Count=0
Command=Command+Chr(13)+Chr(10)
SendNetworkData(Connect, @Command, Len(Command)) ; Передача команды
Repeat ; В цикле ожидается ответ
Delay(20)
If NetworkClientEvent(Connect)=#PB_NetworkEvent_Data ; От модема получены данные
Count=0
*mem=AllocateMemory(10000) ; Память под данные
If *mem
ReceiveNetworkData(Connect,*mem,10000) ; Считывание данных
In.s=PeekS(*mem)
FreeMemory(*mem)
Result=Result+In
EndIf
EndIf
Count+1
Until Count>=40
ProcedureReturn Result
EndProcedure
Connect=OpenNetworkConnection("192.168.1.1", 23) ; Установка связи с модемом D-Link DSL-2500U
If Connect
Delay(50)
SendModemData(Connect, "admin") ; Логин доступа к модему
SendModemData(Connect, "admin") ; Пароль доступа к модему
Delay(1000)
SendModemData(Connect, "adsl start") ; Разрвыв связи с последующим соединением
Delay(2000)
CloseNetworkConnection(Connect) ; Разрыв связи с модемом
Else
MessageRequester("", "Нет связи с модемом")
EndIf
Компилятор здесь