ayuda api messenger????

Iniciado por leo17, 26 Enero 2008, 18:28 PM

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

leo17

hola amigos, como puedo una vez creado el objeto messenger a traves de
set msn = new messenger, si el usuario cierra esa instancia de  el messenger yo enterarme ok.
gracias

Hans el Topo

 

Lewert

Hay muy poca informacion en google y en toda la red sobre la API del Messenger en Visual Basic.
Crack the bytes, crack yourself

LixKeÜ

 Pero que es lo que quieres hacer empezar a usar esa libreria o como incorporarlo ????? :huh:

leo17

osea lo yo hago es crear una instancia del objeto con set msn = new messengerapi.messenger
pero solo puedo usar las funciones mientras este este abierto.

Hans el Topo

Cita de: leo17 en 29 Enero 2008, 22:46 PM
osea lo yo hago es crear una instancia del objeto con set msn = new messengerapi.messenger
pero solo puedo usar las funciones mientras este este abierto.


concepto de programación básico

estas creando un objeto que tiene x métodos, funciones, propiedades ... etc ... propios
 

Chefito

Bueno.....esto me ha costado algo  :¬¬ . Aquí dejo un código realizado por mi para detectar la conexión, desconexión, cierre y apertura del msn. Lo he intentado dejar algo comentado. Si dudas en algo me lo dices. Espero que te sirva a ti y a quien le interese. Si veis errores o alguna mejora me lo comentais. Tampoco me he matado optimizandolo  :P.
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim Msn As Messenger
Private Sub Form_Load()
Set Msn = New Messenger
Timer1.Interval = 500
End Sub


Private Sub Timer1_Timer()
On Error GoTo CerrarMsn      'Esto ignora el error producido al cerrarse
Static Desconectado As Boolean, Conectado As Boolean, VariableError As Boolean
If Msn.MyStatus = MISTATUS_OFFLINE Then     'Te dice si esta desconectado
    Desconectado = False
    If Conectado = False Then
        Conectado = True
        MsgBox "Esta desconectado", vbCritical
    End If
Else
   
    ' Te dice si estas conectado. Lo averigua comparando todos los estados posibles de conexion del Msn.
   
    If Msn.MyStatus = MISTATUS_AWAY Or Msn.MyStatus = MISTATUS_BE_RIGHT_BACK Or Msn.MyStatus = MISTATUS_BUSY Or Msn.MyStatus = MISTATUS_IDLE Or Msn.MyStatus = MISTATUS_INVISIBLE Or Msn.MyStatus = MISTATUS_ON_THE_PHONE Or Msn.MyStatus = MISTATUS_ONLINE Or Msn.MyStatus = MISTATUS_OUT_TO_LUNCH Then
            Conectado = False
            If Desconectado = False Then
                Desconectado = True
                MsgBox "Esta conectado", vbInformation
            End If
    End If
End If
VariableError = False
Exit Sub
CerrarMsn:                          'Se introduce aqui cuando se produce un error. Este error se produce cuando cierras el Msn
    If VariableError = falso Then   'Te indica que el Msn se ha cerrado.
        Set Msn = Nothing           'Descargo el objeto, para poder cargarlo luego si se abre de nuevo, y así salga del error.
        VariableError = True
        Desconectado = False
        Conectado = False
        MsgBox "El messenger se ha cerrado", vbCritical
    Else
        Dim CargadoMsn As Long, MsnAbierto As Boolean
        CargadoMsn = FindWindow("msnhiddenwindowclass", vbNullString)   'Revisa si esta cagada la clase del Msn Live.
        If CargadoMsn <> 0 And MsnAbierto = False Then
            Set Msn = New Messenger                 'Si esta la clase, carga de nuevo el objeto. Tambien te dice que se ha abierto el Msn
            MsgBox "El messenger se ha abierto", vbInformation
            MsnAbierto = True
        End If
    End If
End Sub


Una última cosa. La clase que he puesto en la función FindWindow para detectar la apertura del msn es la de mi versión msn live 8.1 (supongo que valga para todas la Live). Si no es Live tendreis que poner la clase apropiada. Buscarla con el Spy++ del VB6.
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)