GetForegroundWindow() y Me.Handle

Iniciado por Selfmastery, 25 Abril 2008, 18:55 PM

0 Miembros y 1 Visitante están viendo este tema.

Selfmastery

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

        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!

cassiani

Cita de: Self_Mastery en 25 Abril 2008, 18:55 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 (vb) [Seleccionar]

Dim hWndActivo As Long
Dim hWndMiPrograma As Long
       
hWndActivo = GetForegroundWindow()
hWndMiPrograma = Me.hWnd
       
If (hWndMiPrograma = hWndActivo) Then MsgBox "Mira entre... xD"


¡saludos!

Selfmastery

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і!

cassiani

Cita de: Self_Mastery en 25 Abril 2008, 22:08 PM
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...

seba123neo

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.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Selfmastery

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.

cassiani

Cita de: Self_Mastery 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.

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

¡saludos!