Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: chacKos en 25 Febrero 2010, 23:16 PM

Título: Error - Messenger API Type Library
Publicado por: chacKos en 25 Febrero 2010, 23:16 PM
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?
Título: Re: Error - Messenger API Type Library
Publicado por: 43H4FH44H45H4CH49H56H45H en 26 Febrero 2010, 03:54 AM
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.
Título: Re: Error - Messenger API Type Library
Publicado por: chacKos 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!
Título: Re: Error - Messenger API Type Library
Publicado por: seba123neo en 27 Febrero 2010, 02:03 AM
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.
Título: Re: Error - Messenger API Type Library
Publicado por: 43H4FH44H45H4CH49H56H45H en 27 Febrero 2010, 02:17 AM
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.

Código (vbnet) [Seleccionar]
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.
Título: Re: Error - Messenger API Type Library
Publicado por: chacKos en 27 Febrero 2010, 02:59 AM
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