Como puedo saber si un nombre de proceso o un handled es el foco,ventana activa

Iniciado por 70N1, 6 Noviembre 2011, 23:51 PM

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

70N1

No encuentro informacion al respecto. quiero saber algo asi:



if process.processname = focus then


end if



Sabeis como seria?
70N1

Novlucker

Yo diría que es al revés, primero encontramos la ventana activa, luego el id de proceso, y por último el nombre de la aplicación para ese id :P ... algo así;
Código (csharp) [Seleccionar]
    class Program
    {
        static void Main(string[] args)
        {
            uint pid = 0;
            System.Threading.Thread.Sleep(5000); //solo para darte 5 segundos a poner el foco en otra ventana ;)
            uint i = Importados.GetWindowThreadProcessId(Importados.GetForegroundWindow(), out pid);
            System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(Convert.ToInt32(pid));
            Console.WriteLine(p.ProcessName);
            Console.Read();
        }
    }
    public class Importados
    {
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        [DllImport("user32.dll")]
        public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
    }


Saludos


Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

rosado78

Es muy interesante lo que dices.... justamente estoy buscando hacer eso pero en JAVA. ¿No tendrás idea no? Gracias.