Cómo conectar datos del Messenger a un agenda electrónica creada con Visual Basic.

Estoy trabajando en visual basic, haciendo una agenda electrónica, en uno de las caja de texto pongo la dirección de alguien del MSN, aquí va la pregunta: necesito que al aparecer esa dirección el programa se fije si esta conectado al messenger o no, si es así muestre una figura si no que muestre otra, ¿me explico?, tengo messenger 5 y visual basic 6.
Respuesta
1
Para saber el estado (conectado, desconectado, ocupado, etc.) de un contacto tienes que tener una cuenta de messenger, estar conectado y que el contacto este en tu lista.
Antes que nada te paso estas tres páginas que poseem infor. Sobre lo que me pedís:
1) http://www.imppwg.org/ml-archive/IMPP-WG/200105/msg00022.html
2) http://www.exhedra.com/xq/ASP/txtCodeId.28094/lngWid.1/qx/vb/scripts/ShowCode.htm
3) http://www.xtremecomp.com/tips/xttip22.htm
4) http://abstractvb.com/code.asp?A=936
Igualmente voy a decirte como lo podrías hacer, simplemente seguí los sig. pasos:
1) Crea un nuevo proyecto (standard exe)
2) Atomaticamente se te crea el form1. Agregale los sig. elementos:
Tipo->Nombre
Label->LabelUsuario
Label->LabelPass
TextBox->TextUsuario
TextBox->TextPass
CommandButton->ButtonConectar
Label->LabelContactos
ListBox->ListContactos
3) Agrega uns referencia a msmsgs.exe
Proyecto->Referencias->selecciona Messenger 1.0 Type Library
4) Pega el sig código:
Option Explicit
Dim Msgrobj As New MsgrObject
Dim MsgrSrvobj As IMsgrService
Private Sub ButtonConectar_Click()
If (Trim(TextUsuario.Text) = "" Or Trim(TextPass.Text) = "") Then
MsgBox "Debe especificar el usuario y el pass.", vbOKOnly, "Error al conectar."
Else
If (Msgrobj.LocalState <> MSTATE_OFFLINE) Then
If (Msgrobj.LocalLogonName <> Trim(TextUsuario.Text)) Then
Msgrobj.Logoff
Do
If (Msgrobj.LocalState <> MSTATE_LOCAL_DISCONNECTING_FROM_SERVER) Then
Msgrobj.Logon Trim(TextUsuario.Text), Trim(TextPass.Text), MsgrSrvobj
Exit Do
End If
Loop
End If
Else
Msgrobj.Logon Trim(TextUsuario.Text), Trim(TextPass.Text), MsgrSrvobj
End If
End If
Do
If (Msgrobj.LocalState <> MSTATE_LOCAL_CONNECTING_TO_SERVER And Msgrobj.LocalState <> MSTATE_LOCAL_FINDING_SERVER And Msgrobj.LocalState <> MSTATE_LOCAL_SYNCHRONIZING_WITH_SERVER) Then
If (Msgrobj.LocalState = MSTATE_OFFLINE) Then
MsgBox "Error al conectarse.", vbOKOnly, "Error."
Exit Do
ElseIf (Msgrobj.LocalState = MSTATE_ONLINE) Then
Estado_Contactos
Exit Do
End If
End If
Loop
End Sub
Private Sub Form_Load()
Form1.Caption = "El estado de mis contactos."
LabelUsuario.Caption = "Usuario:"
LabelPass.Caption = "Password:"
TextUsuario.Text = ""
TextPass.Text = ""
TextPass.PasswordChar = "*"
LabelContactos.Caption = "Contactos:"
ButtonConectar.Caption = "Conectar."
ListContactos.Clear
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Msgrobj = Nothing
Set MsgrSrvobj = Nothing
End Sub
Private Sub Estado_Contactos()
Dim usr As Messenger.IMsgrUser
For Each usr In Msgrobj.List(MLIST_CONTACT)
Select Case usr.State
Case MSTATE_ONLINE
ListContactos.AddItem usr.FriendlyName & " [En línea]"
Case MSTATE_IDLE
ListContactos.AddItem usr.FriendlyName & " [En línea]"
Case MSTATE_BUSY
ListContactos.AddItem usr.FriendlyName & " [No disponible]"
Case MSTATE_BE_RIGHT_BACK
ListContactos.AddItem usr.FriendlyName & " [Vuelvo enseguida]"
Case MSTATE_AWAY
ListContactos.AddItem usr.FriendlyName & " [Ausente]"
Case MSTATE_ON_THE_PHONE
ListContactos.AddItem usr.FriendlyName & " [Al teléfono]"
Case MSTATE_OUT_TO_LUNCH
ListContactos.AddItem usr.FriendlyName & " [Salí a comer]"
Case MSTATE_OFFLINE
ListContactos.AddItem usr.FriendlyName & " [Sin conexion]"
End Select
Next
End Sub
Hola, mira, ese ejemplo ya lo conocía, pero lamentablemente a mi no me funciona, y si no me equivoco es problema del ejemplo...
Por otro lado logre solucionar el problema de las librerías pero hay una que me sigue molestando, "Messenger AddIns Type Library", creo que es la única que me falta, si sabes donde la puedo conseguir avisame...
Te vuelvo a agradecer.Nico.
Primero que nada quiero agradecerte por el código.
Parte de mi pregunta se solucionó, ahora viene la otra parte, no tengo en las referencias: "Messenger 1.0 Type Library", porque tengo el messenger 5, esa referencia es para el messenger 4.6, como hago para encontrarla, o bajarla de internet.
Nico.
Tenes que tener instalado el messenger (MSN o comun). Si no te aparece "Messenger 1.0 Type Library2, busca "Messenger Private Type Library" y "Messenger API Type Library".
Si tampoco te aparecen, hace una referencia (botón browse...) al archivo msnmsgr.exe (MSN Messenger) o msmsgs.exe (Messenger).
Si igual seguís sin poder hacerlo, proba utilizando directamente el protocolo, como se muestra en la sig. página (con un ejemplo incluido):
http://www.venkydude.com/articles/msn.htm
Espero te sirva de ayuda, y no te olvides de ponerle puntaje a la respuesta.
Por lo que puedo ver, solo podes usar esa librería con las versiones anteriores a la 5 (4.7 y 4.6). Así que vas a tener que desinstalar el messenger 5 e instalar uno anterior. Otra forma es utilizando directamente el protocolo (en uno de las páginas que te envíe estaba) o utilizar el messenger común (el código que te envíe yo, funciona con el ultimo).
Espero que te sirva de ayuda, y no te olvides de ponerle puntaje.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas