Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: gulabyte en 16 Diciembre 2009, 12:24 pm



Título: Como hacer aparecer un monton de MsgBox
Publicado por: gulabyte en 16 Diciembre 2009, 12:24 pm
Wenas!
Me explico: lo que quiero hacer es hacer aparecer más de un MsgBox en la pantalla de la victima. Al ser el MsgBox un formulario "modal" (creo que va de eso) el servidor tiene que esperar a que se le de a aceptar en el MsgBox para proseguir con la ejecución del programa, por lo que al enviar más de un MsgBox, el primero salta pero luego los demás no aparecen. Por consecuencia los datos enviados desde el cliente al server de la victima se almacenan, y aparece el siguiente MsgBox (después de que yo le de a "Aceptar") con texto repetido en su interior.

¿Cómo hago para mostrar MsgBox no modales o independientes de la interacción de la victima?

Gracias de antemano

salu000000000010


Título: Re: Como hacer aparecer un monton de MsgBox
Publicado por: Seritx en 16 Diciembre 2009, 13:45 pm
Aqui tienes:

Código:
Private Sub Form_Load()
For i = 1 To 100 'el numero 100 es cuantas veces tendras el msgbox
MsgBox "Hola"
Next i
End
End Sub


Salu2 ;D


Título: Re: Como hacer aparecer un monton de MsgBox
Publicado por: gulabyte en 16 Diciembre 2009, 13:56 pm

No no me refería a eso.. quiero enviarlas una a una pero cuando envio la segunda no aparece, le doy al "Aceptar" del primero, le envio el tercer MsgBox y me aparece el texto de los dos ultimos en el tercer MsgBox. Yo lo que quiero es que me aparezcan los MsgBox según los mando aunque tengan mismo texto, diferente...

Una solución sería crear un form no-modal que tenga las caracteristicas del MsgBox y mostrar ese no? pero eso de mostrarlos uno detras de otro casi encima (desplazados diagonalmente un poco) como para que se vea el titulo del otro y tal... me niego a hacer todo eso por código para tal lamerada..nuse

Ayudenme! ;D

salu0000000010


Título: Re: Como hacer aparecer un monton de MsgBox
Publicado por: Karcrack en 16 Diciembre 2009, 14:24 pm
A mi se me ocurre usar las APIs CreateWindowEx y MessageBox :-\

Si no puedes recurrir al truco del timer :rolleyes::
En un Form:
Código
  1. Private Sub Form_Load()
  2.    Call Start
  3. End Sub
En un modulo:
Código
  1. Option Explicit
  2. 'USER32
  3. Private Declare Function KillTimer Lib "USER32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  4. Private Declare Function SetTimer Lib "USER32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  5.  
  6. Private lProc       As Long
  7.  
  8. Sub Start()
  9.    lProc = GetAddr(AddressOf TimerProc)
  10.    Call SetTimer(0, 0, 500, lProc)
  11. End Sub
  12.  
  13. Private Function GetAddr(ByVal lAddr As Long) As Long
  14.    GetAddr = lAddr
  15. End Function
  16.  
  17. Public Function TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long) As Long
  18.    Call SetTimer(0, idEvent + 1, 500, lProc)
  19.    MsgBox "HOLA"
  20.    Call KillTimer(0, idEvent)
  21. End Function
;)