Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse. - Julio 06, 2008, 05:23:06
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Saber la ventana actual. C# 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Saber la ventana actual. C#  (Leído 56 veces)
jorgerulez
Miembro
*****
Desconectado Desconectado

Mensajes: 20


Ver Perfil Email
« en: Abril 08, 2008, 11:35:20 »

Hola, disculpen el titulo no sabía como ponerle.

Tengo un proyectito en mente pero me detiene el siguiente problema, ocupo averiguar cual es la ventana  abierta actualmente. Es decir hago un programa.exe lo ejecuto y mientras este en ejecución este deberia llevar un log de las ventanas que actualmente tienen el foco.
Si abrio el navegador, si abrio paint, un bloc de notas ,.. lo que sea.

No quiero que me digan como hacer todo, solamente como saber la ventana actual.


Saludos, disculpen pero busque mucho y no encuentro nada.
En línea
Ni0
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1355


Ni0-inside the source code

Ni0@el-hacker.org
Ver Perfil WWW Email
« Respuesta #1 en: Abril 08, 2008, 05:16:44 »

GetForegroundWindow();
xD

es una funcion "del windows" tenes que incluir windows.h

esa funcion devuelve un manipulador de ventana HWND (de la ventana al frente de todo)
y con ese HWND pondes obtener el titulo de la ventana y muuuuchas cosas Roll Eyes Roll Eyes Roll Eyes
GetWindowText(HWND, char *, size_t); creo q era asi.... de ultima el compilador te da error xD
en char * pones a donde queres que guarde el titulo, y size la cantidad maxima de caracteres
Código:
char titulo[200];
HWND hwnd;
hwnd = GetForegroundWindow();
GetWindowText(hwnd, titulo, 200);
printf("%s", titulo);

salu2!
En línea

Inside The Source Code




Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
Linux Registred User #460377
jorgerulez
Miembro
*****
Desconectado Desconectado

Mensajes: 20


Ver Perfil Email
« Respuesta #2 en: Abril 08, 2008, 05:45:21 »

Gracias, ya logre hacer lo que queria ^^

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace Proceso
{
    public partial class Form1 : Form
    {

        [DllImport("user32.dll")]
        static extern int GetForegroundWindow();
        [DllImport("user32.dll")]
        static extern int GetWindowText(int hWnd, StringBuilder text, int count);

        public Form1()
        {
            InitializeComponent();
        }

        private void GetActiveWindow()
        {

            const int nChars = 256;
            int handle = 0;
            StringBuilder Buff = new StringBuilder(nChars);

            handle = GetForegroundWindow();

            if (GetWindowText(handle, Buff, nChars) > 0)
            {
                MessageBox.Show(Buff.ToString());
                MessageBox.Show(handle.ToString());
            }

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            GetActiveWindow();
        }
    }
}
En línea
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Saber la ventana actual. C# « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC