Autor
|
Tema: Saber si una aplicación no responde (Leído 2,029 veces)
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Abajo hay una nota que dice claramente Nota: Para ver el estado del programa para ver si este responde o no, se usa la función del api SendMessageTimeout. Que se usaría algo así Private Declare Function SendMessageTimeout lib "USER32" Alias "SendMessageTimeoutA" _ (ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _ lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, _ ByVal lpdwResult As Long) As Long ' Constantes para fuFlags Private Const SMTO_ABORTIFHUNG As Long = &H2 ' No espera a que se termine el TimeOut Private Const SMTO_BLOCK As Long = &H1 ' Previene que tu aplicacion procese mensajes mientras se espera Private Const SMTO_NORMAL As Long = &H0 ' No previene que tu aplicacion procese mensajes mientras se espera Private Const SMTO_NOTIMEOUTIFNOTHUNG As Long = &H8 ' Si el proceso destino procesa mensajes no espera a el TimeOut Private Const SMTO_ERRORONEXIT As Long = &H20 ' Devuelve 0 si el proceso de destino finaliza o la ventana es destruido
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
Abajo hay una nota que dice claramente Que se usaría algo así Private Declare Function SendMessageTimeout lib "USER32" Alias "SendMessageTimeoutA" _ (ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _ lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, _ ByVal lpdwResult As Long) As Long ' Constantes para fuFlags Private Const SMTO_ABORTIFHUNG As Long = &H2 ' No espera a que se termine el TimeOut Private Const SMTO_BLOCK As Long = &H1 ' Previene que tu aplicacion procese mensajes mientras se espera Private Const SMTO_NORMAL As Long = &H0 ' No previene que tu aplicacion procese mensajes mientras se espera Private Const SMTO_NOTIMEOUTIFNOTHUNG As Long = &H8 ' Si el proceso destino procesa mensajes no espera a el TimeOut Private Const SMTO_ERRORONEXIT As Long = &H20 ' Devuelve 0 si el proceso de destino finaliza o la ventana es destruido
Muchas gracias, pues me habia casi rendido ya. Aunque no sé si podre aplicarlo esto a mi programa. Si tengo dudas respondere en este mensaje. Saludos
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
Vale, la información que he leido de MSDN sobre esta función me ha confundido aún más. Como podría saber con SendMessageTimeout si mi aplicación no responde.
Gracias de nuevo
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Yo intentaría asi Private Declare Function SendMessageTimeout lib "USER32" Alias "SendMessageTimeoutA" _ (ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _ lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, _ ByVal lpdwResult As Long) As Long Private Const SMTO_BLOCK As Long = &H1 ' Previene que tu aplicacion procese mensajes mientras se espera Private Const SMTO_ERRORONEXIT As Long = &H20 ' Devuelve 0 si el proceso de destino finaliza o la ventana es destruido Private Const WM_GETTEXT As Long = &HD Function IsAlive(ByVal hwnd as Long, Optional ByVal TimeOut as Long = 4500) as Boolean IsAlive = SendMessageTimeout(hwnd, WM_GETTEXT, 0, 0, SMTO_BLOCK Or SMTO_ERRORONEXIT, TimeOut) End Function
Aunque no lo he probado ni yo por apurado
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como saber en que O.S. se ejecuta mi aplicacion
Programación Visual Basic
|
Chief
|
8
|
5,236
|
20 Agosto 2005, 01:16 am
por Pseudoroot
|
|
|
Aplicacion sobre aplicacion en pantalla completa xD
Programación Visual Basic
|
spaceboy90
|
1
|
2,516
|
28 Enero 2007, 23:10 pm
por Red Mx
|
|
|
Como saber el archivo BaseDeDatos.mdb pertenece a mi aplicacion?
.NET (C#, VB.NET, ASP)
|
TheGhost(Z)
|
6
|
5,507
|
20 Marzo 2011, 23:16 pm
por Xephiro
|
|
|
¿Qué necesito saber para hacer una aplicación que simule un "control remoto"?
Desarrollo Web
|
Aikanáro Anário
|
3
|
4,127
|
21 Julio 2011, 22:31 pm
por Kase
|
|