elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Saber si una aplicación no responde
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Saber si una aplicación no responde  (Leído 2,018 veces)
тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Saber si una aplicación no responde
« en: 12 Agosto 2011, 21:55 pm »

Tengo una pequeña duda, quiero saber si mi aplicación No responde y ejecutar una función.

Se puede conseguir sin hacer falta esto: http://www.recursosvisualbasic.com.ar/htm/listado-api/235-ver-si-aplicacion-responde.htm

Gracias.


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Saber si una aplicación no responde
« Respuesta #1 en: 12 Agosto 2011, 22:04 pm »

Abajo hay una nota que dice claramente

Citar
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í

Código
  1. Private Declare Function SendMessageTimeout lib "USER32" Alias "SendMessageTimeoutA" _
  2.        (ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
  3.         lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, _
  4.         ByVal lpdwResult As Long) As Long
  5.  
  6. ' Constantes para fuFlags
  7. Private Const SMTO_ABORTIFHUNG As Long = &H2 ' No espera a que se termine el TimeOut
  8. Private Const SMTO_BLOCK As Long = &H1 ' Previene que tu aplicacion procese mensajes mientras se espera
  9. Private Const SMTO_NORMAL As Long = &H0 ' No previene que tu aplicacion procese mensajes mientras se espera
  10. Private Const SMTO_NOTIMEOUTIFNOTHUNG As Long = &H8 ' Si el proceso destino procesa mensajes no espera a el TimeOut
  11. Private Const SMTO_ERRORONEXIT As Long = &H20 ' Devuelve 0 si el proceso de destino finaliza o la ventana es destruido
  12.  


En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Saber si una aplicación no responde
« Respuesta #2 en: 12 Agosto 2011, 22:18 pm »

Abajo hay una nota que dice claramente

Que se usaría algo así

Código
  1. Private Declare Function SendMessageTimeout lib "USER32" Alias "SendMessageTimeoutA" _
  2.        (ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
  3.         lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, _
  4.         ByVal lpdwResult As Long) As Long
  5.  
  6. ' Constantes para fuFlags
  7. Private Const SMTO_ABORTIFHUNG As Long = &H2 ' No espera a que se termine el TimeOut
  8. Private Const SMTO_BLOCK As Long = &H1 ' Previene que tu aplicacion procese mensajes mientras se espera
  9. Private Const SMTO_NORMAL As Long = &H0 ' No previene que tu aplicacion procese mensajes mientras se espera
  10. Private Const SMTO_NOTIMEOUTIFNOTHUNG As Long = &H8 ' Si el proceso destino procesa mensajes no espera a el TimeOut
  11. Private Const SMTO_ERRORONEXIT As Long = &H20 ' Devuelve 0 si el proceso de destino finaliza o la ventana es destruido
  12.  
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 Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Saber si una aplicación no responde
« Respuesta #3 en: 12 Agosto 2011, 22:21 pm »

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 Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Saber si una aplicación no responde
« Respuesta #4 en: 12 Agosto 2011, 22:28 pm »

Yo intentaría asi

Código
  1. Private Declare Function SendMessageTimeout lib "USER32" Alias "SendMessageTimeoutA" _
  2.        (ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
  3.         lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, _
  4.         ByVal lpdwResult As Long) As Long
  5. Private Const SMTO_BLOCK As Long = &H1 ' Previene que tu aplicacion procese mensajes mientras se espera
  6. Private Const SMTO_ERRORONEXIT As Long = &H20 ' Devuelve 0 si el proceso de destino finaliza o la ventana es destruido
  7. Private Const WM_GETTEXT As Long = &HD
  8.  
  9. Function IsAlive(ByVal hwnd as Long, Optional ByVal TimeOut as Long = 4500) as Boolean
  10.    IsAlive = SendMessageTimeout(hwnd, WM_GETTEXT, 0, 0, SMTO_BLOCK Or SMTO_ERRORONEXIT, TimeOut)
  11. End Function
  12.  

Aunque no lo he probado ni yo :xD por apurado :¬¬
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines