holas gente!!! tengo un problema...
Como hago para saber cuando se a iniciado sesion y cuando se a cerrado sesion en el MSN...por ejem un codigo de vb6 q me ayude hacer esto:
If InicioSesion = True Then
msgbox "Se ha INICIADO sesion en el MSN"
End If
If CerroSesion = True Then
msgbox "Se ha CERRADO sesion en el MSN"
End If
alguna API??? o algo q suceda en WIN q pueda interceptar y q me ayude a implementar las funciones boolenas mencionadas anteriormente???
gracias por todo de antemano
Man fijate en la pagina 2,3 o 4 de este foro y encontraras una guia muy buena de API's y funciones para el MSN. Busca y no seas tan vago, ensima el autor del post puso ejemplos de lo que vos keres hacer, asi que te va a venir bien :)
Sancho.Mazorka :P
lo q e encontrado en este foro respecto a lo q me dices es esto
http://foro.elhacker.net/index.php/topic,153975.0.html (http://foro.elhacker.net/index.php/topic,153975.0.html)
si no fuera este te agradeceria q me lo hicieras saber y si me ayudaras con el link ... mucho mejor ;D
voy a darle una leida para ver si tiene lo q necesito :rolleyes:
gracias man
Si esa es :D espero que entiendas lo que dice y te sirva, sino no dudes en postear! (http://foro.elhacker.net/Themes/default/images/post/thumbup.gif)
Sancho.Mazorka :P
He leido la guia y esta muy buena me sirvio mas o menos para lo q queria pero me surgieron unas dudas...
Este es el code q pongo como ejemplo para entiendan mis dudas:
Tiene:
1 Timer: Timer1
2 TextBox: Text1 y Text2
***Codigo del modulo:
Option Explicit
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Function EstaCargado(NombreClase As String) As Boolean
EstaCargado = (FindWindow(NombreClase, vbNullString) <> 0)
End Function
***Codigo del form:
Option Explicit
Public WithEvents MSN As MessengerAPI.Messenger
Private Sub Form_Load()
Set MSN = New MessengerAPI.Messenger
End Sub
Private Sub Timer1_Timer()
'esto detecta si se a abierto el MSN
'lo q esta entre comillas es el nombre de clase del MSN
If EstaCargado("MSBLWindowClass") Then
If Online = True Then
Text1.Text = "MSN ONLINE"
End If
If Online = False Then
Text1.Text = "MSN OFFLINE"
End If
If ServerStatus = False Then
Text2.Text = "SERVER DESCONECTADO"
End If
If ServerStatus = True Then
Text2.Text = "SERVER CONECTADO"
End If
Else
Text1.Text = ""
Text2.Text = ""
End If
End Sub
Private Function ServerStatus() As Boolean
If MSN.MyStatus = MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER Then
ServerStatus = False
End If
If MSN.MyStatus = MISTATUS_LOCAL_CONNECTING_TO_SERVER Then
ServerStatus = True
End If
End Function
Private Function Online() As Boolean
If MSN.MyStatus = MISTATUS_ONLINE Then
Online = True
End If
If MSN.MyStatus = MISTATUS_OFFLINE Then
Online = False
End If
End Function
Luego hago el .exe, lo ejecuto y ocurre lo sgte con el MSN
Si el MSN no esta en el systemtray, aparece y crea 2 entradas en el registro para q el MSN MESSENGER(msnmsgr.exe) y WINDOWS MESSENGER(msmsgs.exe) se inicien junto con WIN (ver esto en inicio del msconfig)...por q ocurre esto???, es por la instancia de la API del MSN???...se puede evitar esto???...me saber como
Cuando el MSN se esta conectando para iniciar sesion aparece en el Text2 "SERVER CONECTADO" pero despues de unos segundos aparace "SERVER DESCONECTADO" y el MSN entra en sesion...por q ocurre esto del SERVER???...si se supone q si esta en sesion deberia de seguir conectado al SERVER hasta q se cierre sesion...o no???
Cuando se agrega la referencia de la MESSENGER API TYPE LIBRARY, en la location sale esto:
C:\Archivos de Programa\Messenger\msmsgs.exe\3 (a mi me sale así)...q quiere decir esto??? acaso las referencias no eran a dlls???...por q el 3 despues del exe???...y si no tuviera el Windows Messenger en la PC q ejecuto mi APP como hago para tener las dll de referencia (MESSENGER API TYPE LIBRARY)en esa PC???...necesariamente tengo q instalar el Win Messeger o solo tendria q copiar el msmsgs.exe a la PC???...ya q de ahi hace la referencia segun location
Para q sirven:
MSN.MyStatus = MISTATUS_LOCAL_FINDING_SERVER y
MSN.MyStatus = MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER
Lo q deseo es q mi app detecte cuando uno a entrado a su sesion del MSN asi este OFFLINE u otro estado (hay algunos q entran a su sesion pero se ponen de estado OFFLINE) asi q lo de los ESTADOS no me va a ayudar, mas bien podria utilizar lo del SERVER pero como digo sale CONECTADO cuando empiezan a girar los muñequitos (por decirlo asi) y unos segundos despues sale DESCONECTADO a pesar de q se inicia la sesion
Me podria ayudar lo del SERVER si aparece CONECTADO cuando entra en sesion y permance asi hasta q uno cierra su sesion y deberia aparecer como DESCONECTADO...acaso eso no es lo mas logico???
No habra por ahi alguna info q se me este escapando o q no la tenga???
Mira te voy a responder lo que pueda y lo que entienda.
Podrias reducir lineas de codigo haciendo un simple ELSE
Que se agreguen los 2 MSN al inicio creo que lo hace la instancia de la API del MSN, porque cuando yo la usaba me pasaba lo mismo, asi que debe ser eso.
SERVER CONECTADO debe ser cuando se esta iniciando sesion solamente.
A mi tambien me sale el 3 al final del proceso del MSN, debe ser el parametro de llamada del MSN, y de ahi son las funciones y no de una dll.
No pensaste que MISTATUS_LOCAL_FINDING_SERVER y MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER sean constantes de solo lectura ?
Mas info no se donde conseguir, pero voy a buscar! ::)
CitarPodrias reducir lineas de codigo haciendo un simple ELSE
jeje :rolleyes: lo tomare en cuenta cuando termine todo
CitarSERVER CONECTADO debe ser cuando se esta iniciando sesion solamente.
al parecer si ya q es solo por unos segundos
CitarNo pensaste que MISTATUS_LOCAL_FINDING_SERVER y MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER sean constantes de solo lectura ?
entons...solo devuelven valores???...pero q significan???...como los puedo utilizar???
Un valor de solo lectura solo devuelven un valor, y no pudes cambiar tu esos valores, como por ejemplo:
Winsock1.State 'Vemos el estado del Socket
Form1.Name 'Vemos el nombre del Form
Len(Variable) 'Leemos el tamaño de una variable
Sancho.Mazorka :P
Citarentons...solo devuelven valores???...
lo q pense jejeje :rolleyes:
probe con lo del msn.mysigningname y al parecer si funciona
mas tarde apiq te paso el code del mini APP q hice para probarlo :D
sancho ::) y si por x motivos la PC en donde hago mi prog no tiene el windows messenger de donde cojo la api???
como puedo solucionar eso???
Tendrias que buscar el archivo al cual esta referido en las Referencias del VB
Sancho.Mazorka :P