Hola estoy intentando trastear un poco con la api del messenger. Intento obtener el nick de esta forma!
Imports MessengerAPI
Public Class Form1
Dim msn As New MessengerAPI.Messenger
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = msn.MyFriendlyName
End Sub
End Class
Pero me da el siguiente error:
Error al crear una instancia del componente COM con CLSID {B69003B3-C55E-4B48-836C-BC5946FC3B28} desde IClassFactory debido al siguiente error: 8007000e.
No entiendo por qué, alguien sabe como se puede solucionar?
En winXP que tengo con actualizaciones instaladas me sale:
Error al crear una instancia del componente COM con CLSID {B69003B3-C55E-4B48-836C-BC5946FC3B28} desde IClassFactory debido al siguiente error: 8007000e
Y en otros Win7,XP,Vista y demas sin actualizaciones instaladas funciona normalmente.
Por ese mismo problema deje de usar esa API y trabaje directamente con el protocolo del messenger, es mas seguro y hay mucho mas control de la aplicación.
Hola, gracias por contestar. Estoy buscando algún ejemplo con el protocolo de msn pero no veo nada para vb2008, me podrías poner un ejemplo sencillo para ver como funciona! Gracias!
hay un monton de ejemplos en internet de eso...por ejemplo aca hay uno, es para C#, pero es lo mismo que visual basic lo pasas y listo.
Connect To MSN Messenger Using The MSN Protocol (http://www.codeproject.com/KB/cs/Connect_To_MSN_Messenger.aspx)
saludo.
Cita de: C-ChacK en 26 Febrero 2010, 10:19 AM
Hola, gracias por contestar. Estoy buscando algún ejemplo con el protocolo de msn pero no veo nada para vb2008, me podrías poner un ejemplo sencillo para ver como funciona! Gracias!
Bueno para empezar debes leer este pdf básico del protocolo messenger:
http://www.telefonica.net/web2/telamarinera/docus/protocolo_msn.pdf
Deacuerdo a ello puedes construir tu aplicación, que se basa en envio y recepción mediante Sockets, modificando un ejemplo del msdn te dejo uno hecho a la rápida de como enviar y recibir los 2 primeros comandos del protocolo en vb.net.
Imports System.Net.Sockets
Module Module1
Sub Main()
Connect("messenger.hotmail.com", "VER 1 MSNP9 MSNP8 CVR0" & vbCrLf, "CVR 2 0x0C0A winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS cuenta@hotmail.com" & vbCrLf)
End Sub
Sub Connect(ByVal server As [String], ByVal message As [String], ByVal message2 As [String])
Try
Dim port As Int32 = 1863
Dim client As New TcpClient(server, port)
Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
Dim data1 As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message2)
Dim stream As NetworkStream = client.GetStream()
stream.Write(data, 0, data.Length)
Console.WriteLine("Sent: {0}", message)
data = New [Byte](256) {}
Dim responseData As [String] = [String].Empty
Dim bytes As Int32 = stream.Read(data, 0, data.Length)
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
Console.WriteLine("Received: {0}", responseData)
stream.Write(data1, 0, data1.Length)
Console.WriteLine("Sent: {0}", message2)
bytes = stream.Read(data, 0, data.Length)
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
Console.WriteLine("Received: {0}", responseData)
stream.Close()
client.Close()
Catch e As ArgumentNullException
Console.WriteLine("ArgumentNullException: {0}", e)
Catch e As SocketException
Console.WriteLine("SocketException: {0}", e)
End Try
Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
Console.Read()
End Sub
End Module
La explicación esta en el .pdf que mencioné y mencionar que debes tener una variable int que se incremente con cada comando que envies (eso tb esta explicado en el .pdf), luego para adenatrarte más debes buscar los sitios no oficiales de este protocolo para profundizar y mejorar tu aplicación.
Como escribió @seba123neo hay muchos ejemplos, puedes pasarlos a vb.net para mejorarlos.
Ok, vamos a leer un poquito! Con lo facil que es con la api del messenger, pero en windows xp no me funciona :s jeje