Como hacer aparecer un monton de MsgBox

Iniciado por gulabyte, 16 Diciembre 2009, 12:24 PM

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

gulabyte

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

Seritx

Aqui tienes:

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

gulabyte


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

Karcrack

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 (vb) [Seleccionar]
Private Sub Form_Load()
    Call Start
End Sub

En un modulo:
Código (vb) [Seleccionar]
Option Explicit
'USER32
Private Declare Function KillTimer Lib "USER32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function SetTimer Lib "USER32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Private lProc       As Long

Sub Start()
    lProc = GetAddr(AddressOf TimerProc)
    Call SetTimer(0, 0, 500, lProc)
End Sub

Private Function GetAddr(ByVal lAddr As Long) As Long
    GetAddr = lAddr
End Function

Public Function TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long) As Long
    Call SetTimer(0, idEvent + 1, 500, lProc)
    MsgBox "HOLA"
    Call KillTimer(0, idEvent)
End Function

;)