Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Selfmastery en 25 Abril 2008, 18:55 pm



Título: GetForegroundWindow() y Me.Handle
Publicado por: Selfmastery en 25 Abril 2008, 18:55 pm
Hola!!

Pensaba que con este código en Visual Basic conseguiría que si la ventana activa en ese momento es la de mi programa entraría en el If... pero no es así!

Código:
        Dim hWndActivo As Long
        hWndActivo = GetForegroundWindow()
        Dim hWndMiPrograma As Long
        hWndMiPrograma = Me.Handle
        If (hWndMiPrograma = hWndActivo) Then
            'acciones
        End If

¿Por qué no funciona?

Gracias!


Título: Re: GetForegroundWindow() y Me.Handle
Publicado por: cassiani en 25 Abril 2008, 19:32 pm
¿Por qué no funciona?

No le estas pasando el valor del hanlde a "hWndMiPrograma", esto, porque usas Me.Handle en lugar de Me.hWnd
Código
  1. Dim hWndActivo As Long
  2. Dim hWndMiPrograma As Long
  3.  
  4. hWndActivo = GetForegroundWindow()
  5. hWndMiPrograma = Me.hWnd
  6.  
  7. If (hWndMiPrograma = hWndActivo) Then MsgBox "Mira entre... xD"

¡saludos!


Título: Re: GetForegroundWindow() y Me.Handle
Publicado por: Selfmastery en 25 Abril 2008, 22:08 pm
Hola cΔssiΔnі!

he modificado el código poniendo Me.hWnd como me aconsejas y me da error diciendo que "hWnd no es un miembro de WindowsApplication1.Form1".

He leído por internet que handle se usa con VB.NET y hWnd con VB6. Yo estoy usando VB 2005 Express, no lo dije antes, sorry.

¿Alguna idea más para que funcione bien?

Gracias cΔssiΔnі!


Título: Re: GetForegroundWindow() y Me.Handle
Publicado por: cassiani en 26 Abril 2008, 04:07 am
Yo estoy usando VB 2005 Express, no lo dije antes, sorry

Hola, pequeño detalle ese...

Espero que esto no te moleste, para consultas .net hay un subforo especializado, este es solo vb, por eso te respondí haciendo referencia a ese lenguaje, al responderte por acá algo de .net insito al desorden, hay quienes si lo hacen, yo no...

Si posteas donde es, seguro te ayudan sin pensarlo...

¡saludos! en vb6.0 ese code funciona perfecto...


Título: Re: GetForegroundWindow() y Me.Handle
Publicado por: seba123neo en 26 Abril 2008, 08:05 am
si funciona en visual basic ,tiene que recontra funcionar en vb net,solo que cambian los tipos de datos,el long es integer..etc..

saludos.


Título: Re: GetForegroundWindow() y Me.Handle
Publicado por: Selfmastery en 26 Abril 2008, 09:11 am
Tienes razón cΔssiΔnі, me he equivocado de subforo, debería ir en el .NET. A ver si algún moderador lo mueve please. Siento las molestias.


Título: Re: GetForegroundWindow() y Me.Handle
Publicado por: cassiani en 26 Abril 2008, 17:07 pm
Tienes razón cΔssiΔnі, me he equivocado de subforo, debería ir en el .NET. A ver si algún moderador lo mueve please. Siento las molestias.

No importa, para la próxima sabrás que hacer  :P

¡saludos!