Contacteador
[Informe por voz del cambio de sesiones en msn]

Fecha: 17/02/2003
Publicado: 18/Feb/2003
Autor: José F. Romaniello


Utiliza el TTS de microsoft y las librerías que se instalan automáticamente con msn messenger o windows messenger, y avisa por parlantes el cambio de estado de los usuarios, como así también los mensajes que los mismos mandan.

El proyecto cuenta de un formulario con un solo control Microsoft Direct Text-To-Speech (xvoice.dll)

A continuación sigue código en Visual Basic:

Option Explicit
Dim WithEvents MSN As MsgrObject
Attribute MSN.VB_VarHelpID = -1

Private Sub Form_Load()
    Set MSN = New Messenger.MsgrObject
    ss.Speed = 100
End Sub

Private Sub Search.OnTextReceived(ByVal pIMSession As Messenger.IMsgrIMSession, _
ByVal pSourceUser As Messenger.IMsgrUser, _
ByVal bstrMsgHeader As String, _
ByVal bstrMsgText As String, _
pfEnableDefault As Boolean)

Dim a As String
If bstrMsgText <> Chr(13) & Chr(10) Then
'chr(13) & chr(10) es lo que se recibe
'cuando el usuario esta escribiendo un mensaje
    a = NickName(pSourceUser.EmailAddress) & " dice : " & bstrMsgText
    ss.Speak NickName(pSourceUser.EmailAddress) & " dice : " & bstrMsgText
End If
End Sub

Private Sub Search.OnUserStateChanged(ByVal pUser As Messenger.IMsgrUser, _
ByVal mPrevState As Messenger.MSTATE, _
pfEnableDefault As Boolean)

Dim m As String
m = pUser.FriendlyName
m = NickName(pUser.EmailAddress)

Select Case pUser.State  'el estado al que el usuario cambio.
    Case 2
        m = m & " inició sesión.."
    Case 10
        m = m & " está no disponible.."
    Case 14
        m = m & " vuélve en seguida.."
    Case 34
        m = m & " está ausente.."
    Case 50
        m = m & " está al teléfono.."
    Case 66
        m = m & " salió a comer..."
    Case 1
        m = m & " está sin conexión.."
End Select
ss.Speak m
End Sub

Private Function NickName(s As String) As String
NickName = Mid(s, 1, InStr(1, s, "@") - 1)
'esta función quita el @dominio.xxx.xx
'y deja solo la primera parte
End Function

Nota: el programa debe ser ejecutado después de iniciada la sesión del messenger local, y debe ser cerrado antes de cerrar la misma.

Finalmente el código fuente.

contacteador.zip (2.25 KB)


ir al índice