ho trovato questo codice, non so se funziona però intanto è un'inizio e puoi prendere spunto.
codice:
DialString$ = "ATDT" + "0773700000" + ";" + vbCr
' Impostazioni della porta per le comunicazioni.
' Si presume che un mouse sia connesso a COM1. CommPort viene quindi impostata su 2
MSComm1.CommPort = 4
MSComm1.Settings = "9600,N,8,1"
' Apre la porta per le comunicazioni.
On Error Resume Next
MSComm1.PortOpen = True
If Err Then
MsgBox "COM4 non disponibile. La proprietà CommPort verrà impostata su un'altra porta.", , "Telefono MSComm"
Exit Sub
End If
' Svuota il buffer di input.
MSComm1.InBufferCount = 0
' Compone il numero.
MSComm1.Output = DialString$
MSComm1.Output = "ATV1Q0" & Chr$(13) ' Verifica che il
' modem risponda con "OK".
' Attende il ritorno di dati attraverso la porta
' seriale.
MSComm1.OutBufferCount = 0
Do
DoEvents
buffer$ = buffer$ & MSComm1.Input
Loop Until InStr(buffer$, "OK" & vbCrLf)
il codice che utilizzo per trasmettere è il seguente:
' Legge il file in blocchi pari alle dimensioni del buffer di trasmissione.
Dim temp As String
temp = "C:\fabio.txt"
Dim hSend, BSize, LF&
hSend = FreeFile
Open temp For Binary Access Read As hSend
BSize = MSComm1.OutBufferSize
LF& = LOF(hSend)
Do Until EOF(hSend) Or CancelSend
' Non legge più del necessario alla fine.
If LF& - Loc(hSend) <= BSize Then
BSize = LF& - Loc(hSend) + 1
End If
' Legge un blocco di dati.
temp = Space$(BSize)
Get hSend, , temp
' Trasmette il blocco.
MSComm1.Output = temp & vbCr
If Err Then
MsgBox Error$, 48
Exit Do
End If
' Attende che tutti i dati vengano inviati.
Do
Ret = DoEvents()
Loop Until MSComm1.OutBufferCount = 0 Or CancelSend
Loop