Visual Basic - cerrar cudro de mensaje automaticamente

Life is soft - evento anual de software empresarial
 
Vista:

cerrar cudro de mensaje automaticamente

Publicado por xatina (4 intervenciones) el 23/03/2006 14:44:14
Hola a tod@s:
Por favor, alguien puede decirme como puedo cerrar automaticamente un MsgBox,transcurrido por ejemplo, 10 segundos.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cerrar cudro de mensaje automaticamente

Publicado por ivan (1039 intervenciones) el 23/03/2006 16:36:30
hace tiempo bajé un ejemplo que hace lo que necesitas, poner un MsgBox y cerrarlo transcurrido cierto tiempo, si acaso es tu correo el que pones puedo enviartelo.

Si acaso eso no puede ser posible, busca en este sitio

http://www.canalvisualbasic.net/

Creo que de ahí saqué el ejemplo ese que menciono, comenta si acaso encontraste el ejemplo, si no te lo mando a tu correo.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Para ivan

Publicado por xatina (4 intervenciones) el 23/03/2006 17:22:05
Hola ivan, por favor si puedes mandame el ejemplo que tienes a esta dirección de correo.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para ivan

Publicado por ivan (1039 intervenciones) el 23/03/2006 18:00:47
Listo xatina, revísalo y comenta si acaso te sirvió, Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cerrar cudro de mensaje automaticamente

Publicado por pepon (89 intervenciones) el 23/03/2006 18:49:36
En un módulo .bas:
Public Const NV_CLOSEMSGBOX As Long = &H5000&
Public Declare Function SetTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&, _
ByVal uElapse&, ByVal lpTimerFunc&)
Public Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
Public Declare Function LockWindowUpdate& Lib "user32" (ByVal hwndLock&)
Public Declare Function SetForegroundWindow& Lib "user32" (ByVal hWnd&)
Public Declare Function MessageBox& Lib "user32" Alias "MessageBoxA" _
(ByVal hWnd&, ByVal lpText$, ByVal lpCaption$, ByVal wType&)
Public Declare Function KillTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&)
Public Const API_FALSE As Long = 0&
Public Sub TimerProc(ByVal hWnd&, ByVal uMsg&, ByVal idEvent&, ByVal dwTime&)
KillTimer hWnd, idEvent
Dim hMessageBox&
hMessageBox = FindWindow("#32770", "AutoCerrado")
If hMessageBox Then
Call SetForegroundWindow(hMessageBox)
SendKeys "{enter}"
End If
Call LockWindowUpdate(API_FALSE)
End Sub

En el Form:
' No olvides visitar mi website http://www.vbexperto.com
Private Sub Form_Load()
'Sustituye 4000 por el nº de milisegundos que quieres que el mensaje aparezca
'1000 milisegundos=1 segundo
SetTimer hWnd, NV_CLOSEMSGBOX, 4000&, AddressOf TimerProc
Call MessageBox(hWnd, "Este mensaje desaparecerá en 4 segundos", _
"AutoCerrado", MB_ICONQUESTION Or MB_TASKMODAL)
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No me funciona

Publicado por xatina (4 intervenciones) el 24/03/2006 08:46:57
Hola a todos, antes de nada, gracias por responder a mi pregunta.

Lo he probado per no me funciona, y creo que debe de ser porque en mi formulario tengo un control Timer para actualizar el reloj en pantalla, y no se porqué interfiere; pero no puedo quitar el control. ¿Sabeis si puedo hacer algo?

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me funciona

Publicado por ivan (1039 intervenciones) el 24/03/2006 17:04:24
En el ejemplo que puso pepon en la nota anterior, es muy similar al ejemplo que te envié y debería de funcionar, porque ya lo probé.

En mi caso, yo no tengo ningún timer dentro del formulario donde hago uso de estos mensajes, pero eso no afecta en nada al funcionamiento del ejemplo que te envié, inclusive, a dicho ejemplo le agregué un control timer, junto con una etiqueta que la muestre cada segundo, con un botón iniciar el parpadeo (o sea, que pone en TRUE la propiedad ENABLED del timer) y otro para parar el parpadeo.

Al estar ENABLED=TRUE del timer no afectó para nada la rutina del mensaje automático, siguió funcionando igual, creo que deberías revisar bien como implementaste esto, ya que puede que algo te esté haciendo falta para que no funcione.

Si acaso puedes, envíame tus formularios para poder revisarlos. No te aseguro resolver el problema, pero si tengo tiempo seguro apoyaré en algo; si no, procura poner el código que incluiste en el módulo bas y el código del formulario justo donde mandas llamar el MSGBOX automático.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

lo conseguí

Publicado por xatina (4 intervenciones) el 27/03/2006 07:50:22
Hola a tod@s, muchas gracias por vuestra ayuda. Por fin lo he conseguido, y ya se cierra la ventana automaticamente.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE
Val: 58
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

lo conseguí

Publicado por JOSE (36 intervenciones) el 03/01/2019 02:35:06
pero no dices como lo solucionastes ..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar