Je dois faire une petite application en VB, qui permet lorsqu'une erreur se
produit dans une machine d'envoyer un appel telephonique sur un GSM et un
poste fixe pour alerter l'operateur. Cela fonctionne avec le petit prg que
j'ai fait (tres simple, j'en conviens mais je ne suis pas une specialiste)
mais un probleme se pose quand meme : l'appel doit etre renouvele plusieurs
fois avec un intervalle de quelques minutes. L'ennui, c'est que souvent le
modem se bloque et l'appel suivant ne peut avoir lieu. C'est comme si le
modem n'avait pas raccroche. Pour re-initialiser le modem, il faut arreter
et relancer l'ordinateur, ce qui pose probleme puisque il doit tourner en
permanence pour surveiller les mesures. Je pense aussi que cela arrive
lorsque l'operateur a l'autre bout du fil decroche. Je n'ai pas trouve
comment intercepter le fait que qq decrochait et arreter la sequence.
Quelqu'un pourrait-il m'aider a trouver une meilleure solution/code ? Je
precise que la machine sur laquelle tourne ce petit prg est en NT et que le
modem est relativement ancien. Cela pourrait-il avoir une incidence ?
Aurais-je un meilleur resultat avec un modem plus recent ?
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Sub AutomaticDial(MSComm1 As MSComm, strNumber As String, intCommPort As
Integer, intSec As Integer, txtBox As TextBox)
Dim Number$, Temp$
Dim DialString$, FromModem$, dummy
Dim StartTime, EndTime
Dim strInterv As String
CancelFlag = False
Number$ = strNumber
If Number$ = "" Then
Exit Sub
End If
DialString$ = "ATDT" + Number$ + ";" + vbCr
MSComm1.CommPort = intCommPort
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
MSComm1.Output = DialString$
txtBox.Text = "Call " & Number$
strInterv = "00:00:" & intSec
StartTime = Time
EndTime = StartTime + TimeValue(strInterv)
Do
dummy = DoEvents()
If MSComm1.InBufferCount Then
FromModem$ = FromModem$ + MSComm1.Input
txtBox.Text = FromModem$
End If
StartTime = Time
If StartTime > EndTime Then
CancelFlag = True
End If
If CancelFlag Then
CancelFlag = False
Exit Do
End If
Private Sub Form_Load()
frmDialAut.Show
AutomaticDial MSComm1, "195", 2, 50, Me.Text1
Unload frmDialAut
End
End Sub
--
AngelJo
------------
Le desir et le plaisir arrive parfois a vaincre la raison.
AngelJo
