Error - Messenger API Type Library

Iniciado por chacKos, 25 Febrero 2010, 23:16 PM

0 Miembros y 1 Visitante están viendo este tema.

chacKos

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?


---] chacKos [---

43H4FH44H45H4CH49H56H45H

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.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

chacKos

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!


---] chacKos [---

seba123neo

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

saludo.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

43H4FH44H45H4CH49H56H45H

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.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

chacKos

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


---] chacKos [---