Te adjunto un fragmento de un programilla bastante antiguo, que usaba un modem para marcar el número de teléfono, a petición del usuario:
Code: Select all
function lInitModem(variable)
local cDcb, nError, nBytes
variable = OpenComm( "COM4:", 1024, 128 )
if ! BuildCommDcb( "COM4:2400,n,8,1", @cDcb )
nError = GetCommError( variable )
MsgStop( "Error inicialozando modem!" )
return .f.
endif
if ! SetCommState( cDcb )
nError = GetCommError( variable )
MsgStop( "Error inicializando modem!" )
return .f.
endif
return .t.
function DialNumber( cNumber )
static initmodem:=.f.,ncomm:=0,enlinea:=.f.
local nBytes :=0
if !initmodem
initmodem:=linitmodem(@ncomm)
else
if !enlinea
nbytes:=WriteComm( nComm, "ATDT "+AllTrim( cNumber ) + Chr( 13 ) )
if nBytes < 0
MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )
return nil
endif
enlinea:=.t.
else
nBytes := WriteComm( nComm, "ATH"+chr(13) )
if nBytes < 0
MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )
return nil
endif
enlinea:=.f.
endif
endif
return nil
Espero que le puedas sacar provecho.
Un saludo