Descobrir Serial da Placa Mãe - Delphi

Veja neste artigo como podemos Capturar o numero serial da placa mãe. Iremos criar uma função para poder reaproveitar o código em outras partes do projeto ou até mesmo em outros projetos.

Olá pessoal, vamos ver neste artigo como podemos pegar o serial da placa mãe do computador onde o nosso sistema estará rodando. Isso é legal para podermos validar pelo Hardware as máquinas que tem direito de acessar o sistema.

Iniciaremos agora criando um novo projeto em Delphi e iremos adicionar um TButton no mesmo, abaixo temos o layout bem simples do formulário.


Figura 1. Layout do Formulário

Nesta parte do código vamos criar uma função dentro da classe do nosso formulário, para obtermos uma reutilização da função em outros momentos necessários, o ideal seria colocar a mesma em uma unit separada do formulário, fica ai a dica para quem quiser separar, ok ?

Vamos ser práticos agora, veja a declaração da função.

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry, WinProcs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); private { Private declarations } function GetSerialMotherBoard: String; public { Public declarations } end; var Form1: TForm1; implementation end.

Agora, precisamos implementar a function declarada, para isso vamos colocar o curso do mouse dentro da Classe TForm, e pressionar CTRL+SHIF+C, em seguida o Delphi fará a mágica de implementar a mesma, como mostra o código abaixo :

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry, WinProcs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; OpenDialog1: TOpenDialog; private { Private declarations } function GetSerialMotherBoard: String; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.GetSerialMotherBoard: String; begin end; end.

Neste momento vamos implementar nosso código dentro da function criada anteriormente, para isso localize a mesma dentro da unit e implemente o código abaixo:

function TForm1.GetSerialMotherBoard: String; var a, b, c, d: LongWord; begin asm push EAX push EBX push ECX push EDX mov eax, 1 db $0F, $A2 mov a, EAX mov b, EBX mov c, ECX mov d, EDX pop EDX pop ECX pop EBX pop EAX end; result := inttohex(a, 8) + '-' + inttohex(b, 8) + '-' + inttohex(c, 8) + '-' + inttohex(d, 8); end;

Observe que temos um retorno, no caso o result e agora podemos capturar esta informação a qualquer momento! Como assim ?

Vamos ver algumas dicas de como fazer isso.

No evento onClick do nosso TButton implemente o seguinte:

procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetSerialMotherBoard; ShowMessage(GetSerialMotherBoard); end;

No evento colocamos o serial para aparecer na barra de títulos(caption) e também podemos exibir em uma mensagem.

A dica final seria salvar esta informação(GetSerialMotherBoard) dentro de um Banco de Dados e na hora que abríssemos o sistema testaríamos se o serial da placa mãe é encontrado na nossa tabela e assim validar se é uma máquina cadastrada.

Um grande abraço a todos!

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados