Esse artigo faz parte da revista Clube Delphi Edição 75. Clique aqui para ler todos os artigos desta edição

image
Clique aqui para ler esse artigo em PDF.
  • Mão na Massa
  • API do Windows
  • Programação com funções nativas do SO

Neste artigo utilizaremos alguns dos vários métodos disponíveis na API do Windows, para capturar as mais diversas informações do sistema operacional e das aplicações que nele são executadas. Através da API do Windows podemos realizar as mais diversas tarefas, como: acessar informações de hardware, software, interagir com outros programas, criar objetos, alterar configurações e comportamentos do sistema.

Nota: Para o exemplo deste artigo utilizei o Delphi 7 Enterprise e o Windows XP Professional. Dependendo do seu sistema operacional, uma ou outra função do exemplo terá que ser adaptada.

Criando a aplicação de exemplo

Abra o Delphi 7 e inicie uma nova aplicação. Altere o nome do formulário para “FrmPrincipal” e salve a unit como “untFrmPrincipal.pas”. Para o arquivo de projeto dê o nome de “API_Windows.dpr”. Adicione alguns componentes visuais e configure-os de acordo com a Figura 1.

image
Figura 1. Layout da aplicação de exemplo em tempo de design

A idéia do exemplo é disponibilizar no cbMetodos uma lista pré-definida de opções onde cada uma utilizará métodos da API do Windows para retornar a informação solicitada. Concentraremos vários desses métodos em uma unit separada do formulário, a fim de facilitar seu uso em outros projetos.

Terminado o desenho da tela, vamos iniciar a implementação do código. Selecione o cbMetodos e digite a seguinte lista de opções dentro da sua propriedade Items:


<Selecione>
Usuário
Máquina
IP
Sistema Operacional
Processador
Clock
Memória
Janelas abertas
  

Ainda com o componente selecionado, altere sua propriedade ItemIndex para “0”. Dessa forma o primeiro item da lista ficará selecionado por padrão. No evento OnChange do cbMetodos digite o seguinte código:


lblInformacao.Caption := '';
lblTitulo.Caption := '';
lblExecutavel.Caption := '';
lbJanelas.Items.Clear;
lvObjetos.Items.Clear;
sbExecutar.Enabled := False;
  

Utilizamos o código anterior para “limpar” as informações dos componentes da tela quando o usuário selecionar uma opção da lista. Antes de implementarmos o botão OK, vamos criar as funções que serão chamadas a partir das opções disponíveis na lista. Crie uma nova unit (File>New>Unit) e salve-a como “untFuncoes.pas”. Logo abaixo da seção interface da nova unit, adicione a cláusula uses e coloque a referência às seguintes units:

uses Windows, Dialogs, Classes, SysUtils, Winsock,

TLHelp32, ComCtrls, Registry, ComObj, Forms;

Utilizaremos classes e métodos dessas units em nossas funções de acesso a API do Windows. Muitos dos métodos da API estão mapeados dentro da unit Windows. Antes da seção implementation declare as funções que serão implementadas dentro da unit, conforme a Listagem 1 ...

Quer ler esse conteúdo completo? Tenha acesso completo