/P>

capa_NET37_G.gif

Clique aqui para ler todos os artigos desta edição

Listando as janelas abertas e mostrando um preview

Este artigo discute

Este artigo usa as seguintes tecnologias

·       API do Windows;

·       Fazendo chamadas a APIs do Windows;

·       Obtendo a lista de janelas abertas.

Visual Studio 2005 e C#.

 

Quando desenvolvemos nossos programas, algumas vezes queremos saber quais janelas estão abertas, além de informações sobre elas, como: título, tamanho ou mesmo seu conteúdo.

Este artigo mostrará como listar as janelas abertas, criando uma classe que permite obter essas informações. Essa lista será colocada num ListBox e, quando uma janela for selecionada, será mostrada a visualização do seu conteúdo numa imagem.

 

Listando as janelas abertas

Para listar as janelas abertas, usamos a função da API do Windows EnumWindows. Essa função recebe dois parâmetros, uma função de enumeração e um inteiro:

 

[DllImport("user32.dll")]

private static extern int EnumWindows(

  EnumWindowsProc EnumProc, int lParam);

 

EnumProc é um Callback que será chamado para cada janela principal do sistema. Aqui devemos processar a janela encontrada, adicionando-a, por exemplo, em uma lista. Criaremos uma classe Janela para guardar as informações das janelas abertas. A lista com as janelas será armazenada em outra classe chamada ListaJanelas.

No Visual Studio 2005, crie um novo projeto do tipo Windows Application, chamando-o de “MostraJanelas” (Figura 1).

 

image004.jpg

Figura 1.Projeto Windows Application sendo criado

 

Crie uma nova classe (através do menu Project>Add Class), dando o nome de “Janela.cs” e adicione o código da Listagem 1.

 

Listagem 1. Código da classe Janela

using System;

using System.Text;

using System.Runtime.InteropServices;

 

namespace MostraJanelas

{

    ///

    /// Classe Janela - Armazena os dados da janela

    ...

Quer ler esse conteúdo completo? Tenha acesso completo