Foros del Web » Programación para mayores de 30 ;) » Programación General »

API para saber la aplicacion activa

Estas en el tema de API para saber la aplicacion activa en el foro de Programación General en Foros del Web. Amigos, Espero me puedan ayudar. Tengo un programa en VB que utiliza la función SetWindowsHookEx, para detectar todo lo que se escribe el la PC, ...
  #1 (permalink)  
Antiguo 30/05/2003, 16:48
Avatar de MrLake  
Fecha de Ingreso: febrero-2003
Ubicación: México
Mensajes: 75
Antigüedad: 21 años, 2 meses
Puntos: 0
Pregunta API para saber la aplicacion activa

Amigos, Espero me puedan ayudar.

Tengo un programa en VB que utiliza la función SetWindowsHookEx, para detectar todo lo que se escribe el la PC, esto ya me funciona bien, pero necesito saber desde que aplicación se dió el teclazo (por ejemplo: word, excel, etc.) , alguien sabe cómo puedo hacerlo.

Gracias.
  #2 (permalink)  
Antiguo 02/06/2003, 10:24
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 5 meses
Puntos: 11
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

dim cTxt as String, nHand as Long
nHand = GetActiveWindow()
cTxt = String(100, Chr$(0))
GetWindowText nHand, cTxt, 100
cTxt = Left$(cTxt, InStr(cTxt, Chr$(0)) - 1)
messagebox cTxt

Mira si ese codigo te sirve
__________________
Jorge Mota
Blog
Gubiz estafa
  #3 (permalink)  
Antiguo 02/06/2003, 15:57
Avatar de MrLake  
Fecha de Ingreso: febrero-2003
Ubicación: México
Mensajes: 75
Antigüedad: 21 años, 2 meses
Puntos: 0
Jorge,

El código funciona bien pero solo en el contexto de la aplicación no en el contexto completo de windows, es decir, sabe que VENTANA activa de la aplicación recibió la llamada pero al cambiarse de aplicación el valor de cTxt es nulo independientemente de la ventana activa, se retoma el control a l regresar a la aplicación original.

Si tiene otra idea por favor avísame.

Gracias
  #4 (permalink)  
Antiguo 02/06/2003, 17:22
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 5 meses
Puntos: 11
ok aca vamos, espero que este si funcione
sorry, pero no tengo Visual Basic instalado.


Private Declare Function GetForegroundWindow Lib "user32" () As Long

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
dim cTxt as String, nHand as Long
nHand = GetForegroundWindow()
cTxt = String(100, Chr$(0))
GetWindowText nHand, cTxt, 100
cTxt = Left$(cTxt, InStr(cTxt, Chr$(0)) - 1)
messagebox cTxt
__________________
Jorge Mota
Blog
Gubiz estafa
  #5 (permalink)  
Antiguo 03/06/2003, 13:18
Avatar de MrLake  
Fecha de Ingreso: febrero-2003
Ubicación: México
Mensajes: 75
Antigüedad: 21 años, 2 meses
Puntos: 0
De acuerdo


Estimado Jorge,

Este funciona de maravilla.

Te agradezco muchísimo.

Cualquier cosa cuenta conmigo.
  #6 (permalink)  
Antiguo 03/06/2003, 14:41
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 5 meses
Puntos: 11
me alegra que te funcionara.


ya sabes, a la orden.

Saludos.
__________________
Jorge Mota
Blog
Gubiz estafa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:22.