Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - ſeptiembre 07, 2008, 01:12:18
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Como listar ventanas 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Como listar ventanas  (Leído 143 veces)
-Erick-
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1486



Ver Perfil WWW Email
« en: Marzo 09, 2008, 10:05:52 »

Hola,alguien sabe como recorrer todas las ventanas?
Esk solo sé obtener la ventana activa pero quiero obtener todas las k hay abiertas.
Saludos.
En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

TxShack
Miembro
*****
Desconectado Desconectado

Mensajes: 55


Prefiero morir de pie, a vivir arrodillado


Ver Perfil WWW
« Respuesta #1 en: Marzo 10, 2008, 07:33:22 »

Hola,alguien sabe como recorrer todas las ventanas?
Esk solo sé obtener la ventana activa pero quiero obtener todas las k hay abiertas.
Saludos.

perdona Erick, pero no entendi bien.

¿Que quieres decir con recorrer todas las ventanas?

no se a que te refieres con ello... si a algunas de tu programa... o a las que el usuario que ejecute el programa tenga abiertas... o que Huh
En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion


Por una red libre de información y sin censuras

"Podrán morir las personas, pero jamas sus ideales"
-Erick-
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1486



Ver Perfil WWW Email
« Respuesta #2 en: Marzo 10, 2008, 12:40:01 »

Un Window Manager,lisatr las ventanas abiertas del windows  Tongue
« Última modificación: Marzo 10, 2008, 01:18:13 por -Erick- » En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

DarkIker
Habitual
*****
Desconectado Desconectado

Mensajes: 263


Colombia Underground Team

dark_iker_reign@hotmail.com
Ver Perfil WWW Email
« Respuesta #3 en: Marzo 10, 2008, 01:00:43 »

hay varais formas, una puede ser usando:

GetTopWindow y GetNextWindow

y la otra usando EnumWindows, creo que existia otra forma pero la verdad no la recuerdo Tongue.

Att: DarkIker
En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion --> Colombia Underground Team

Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion --> My Blog
-Erick-
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1486



Ver Perfil WWW Email
« Respuesta #4 en: Marzo 10, 2008, 01:42:19 »

Gracias por contestar DarkIker,la Enum Windows habia visto algo pero no encuentro un ejemplo claro  Tongue
Luego creo k tambien existe EnumDesktopWindows.
Los parametros de EnumWindows son:
Código:
BOOL CALLBACK EnumWindowsProc(     
    HWND hwnd,
    LPARAM lParam
);
Y aki encontré un ejemplo mas o menos bueno:
Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
Pero sigo sin tener claro como se usa,soy bastante novato(se nota)y vengo del VB xD
Osea EnumWindows hay k pasarle un handle y lParam nos devuelve el nombre?
En ese caso tendria k obtener todos los handles?
Creo k ando equivocado,cierto?
En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

DarkIker
Habitual
*****
Desconectado Desconectado

Mensajes: 263


Colombia Underground Team

dark_iker_reign@hotmail.com
Ver Perfil WWW Email
« Respuesta #5 en: Marzo 10, 2008, 01:54:02 »

EnumWindows funciona con un callback, osease vos llamas a la funcion pasandole como parametros   WNDENUMPROC que es el procedure de tu callback y LPARAM que sera el argumento que reciba, luego en el callback debes de retornar TRUE para que se continue con la enumeracion. Ejemplo:

Código:
#include <stdio.h>
#include <string.h>
#include <windows.h>

BOOL CALLBACK EnumWindowsProc( HWND hWnd, LPARAM lpParam)
{
       char szText[256 + 1];

       memset( szText, 0x00, 256 + 1);
       GetWindowText( hWnd, szText, 256);
       printf("Titulo de la ventana %s\n", szText);
       return TRUE;
}

int main( void )
{
      EnumWindows( EnumProcedure, NULL);
      return 0;
}

Disculpa cualquier error pero no e tenido tiempo de abrir un IDE para probarlo Tongue, por otra parte en el caso de que vos busques una ventana en especifico y la encuentre, y por ende no quieras continuar la enumeracion de ventanas solo tienes que retornar FALSE en vez de TRUE. Salu2.

Att: DarkIker
En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion --> Colombia Underground Team

Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion --> My Blog
-Erick-
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1486



Ver Perfil WWW Email
« Respuesta #6 en: Marzo 10, 2008, 02:27:42 »

Muxas gracias DarkIker,creo k tuvistes un pekeño despiste y agregué algunas cosillas para k solo liste las ventanas activas(pork lista muxas otras cosas)aki lo dejo:
Código:
#include <stdio.h>
#include <string.h>
#include <windows.h>

BOOL CALLBACK EnumWindowsProc( HWND hWnd, LPARAM lpParam)
{
       char szText[256 + 1];

       memset( szText, 0x00, 256 + 1);
       GetWindowText( hWnd, szText, 256);
       if (!hWnd)
return TRUE;
if (!IsWindowVisible(hWnd))
return TRUE;


       printf("%s\n", szText);
       return TRUE;
}

int main( void )
{

      EnumWindows( EnumWindowsProc, NULL);
      system("PAUSE");
      return 0;
}
Lo dicho,muxas gracias por la ayuda  Wink
« Última modificación: Marzo 10, 2008, 02:29:06 por -Erick- » En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Como listar ventanas « anterior próximo »
Ir a:  


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