Delphi: Como criar um gerenciador para sua rede

Para criarmos um programa que “gerencie” a nossa rede, seja tanto em caso como no trabalho, temos que criar dois programas: um programa servidor, que ficará nas máquinas que queremos controlar; e um programa cliente, que irá rodar na máquina que queremos usar para controlar os outros computadores.

Primeiramente, devemos criar o programa servidor. Nele colocaremos os componentes ClientSocket (Internet) e NMMsgServ (FastNet). Logo após iremos clicar no menu Project/View Source. Nos será mostrado o código base da aplicação. Devemos colocar o seguinte comando após o begin:

Application.ShowMainForm:=False;

Isso serve para que quando a aplicação seja iniciada, ela não mostre o form principal, ficando invisível ao usuário que estará utilizando o computador. Depois, devemos mudar a propriedade Port do componente NMMsgServ para a porta que você quiser, ou deixar com está (6711). Você deve mudar se existir outro programa usando esta porta ou um firewall bloqueando-a. No meu caso, deixei como 6711.

Agora, no evento OnMSG, devemos colocar o que o programa deve fazer quando receber determinada mensagem. Nesse exemplo, ao receber a mensagem “desligar”, ele irá desligar o computador. Colocarei o comando que é usado para desligar o Windows 98, mas você pode perfeitamente colocar aquela procedure que server para desligar qualquer Windows, só não coloco aqui porque ela é muito grande.

if sMsg = “desligar” then
begin
WinExec(“C:\Windows\rundll32.exe user.exe,exitwindows”,sw_hide);
end;

Ou seja, quando a mensagem “desligar” for enviada para o programa ele irá desligar o Windows 98. Você pode fazer isso e colocar um else depois e fazer com que o programa aceite outros comandos, como por exemplo:

if sMsg = “desligar” then
begin
WinExec(“C:\Windows\rundll32.exe user.exe,exitwindows”,sw_hide);
end
else
if sMsg = “monitor” then
begin
DesligaMonitor(True);
end;

Então ele irá desligar o monitor quando receber a mensagem “monitor”. Claro que do jeito que está neste exemplo, a procedure DesligaMonitor deve estar declarada antes.

Depois de colocar todas as suas funções e procedures, você pode colocar no evento OnCreate do form, um procedure que coloque seu programa no registro para iniciar junto com o Windows ou pode colocar ele como uma tarefa agendada do Windows, para que ele inicie com o Windows.

Agora, temos que criar o programa cliente, para que possamos gerenciar nossos computadores. Crie uma nova aplicação, com os componentes ClientSocket (Internet) e NMMsg (FastNet). Não esqueça de mudar a porta para a que você configurou no servidor. Se você não mudou no servidor, também não precisa mudar no cliente, pois já vai estar com 6711. Agora, coloque um Edit, um Label e um Button. No Caption do Label, coloque “Host” e no Caption do Button coloque “Conectar”. No botão Conectar, coloque o seguinte código:

procedure TForm1.Button1Click(Sender: TObject);
var
comp:string;
begin
comp:=Edit1.Text;
NMMsg1.Host:=comp;
try
NMMsg1.Connect;
ShowMessage(“Conectado.”);
except
ShowMessage(“Erro ao Conectar.”);
end;
end;

Para funcionar, você deve colocar o IP ou o nome de Host do computador que quer controlar e depois clicar em “Conectar”. Se a conexão for possível, irá aparecer uma mensagem dizendo “Conectado”, caso contrário irá dar erro. Agora estou conectado e daí? Agora, vamos colocar um outro botão e alterar o seu Caption para “Desligar”. No código do botão, coloque:

if NMMsg1.Connected=True then
NMMsg1.Disconnect;
NMMsg1.PostIt(“desligar”);
NMMsg1.Connect;

Ou seja, quando você conectar e clicar em “desligar”, o computador a que você está conectado irá desligar. Podemos colocar outro botão com o código e trocar o “desligar” por “monitor”, então o monitor do computador seria desligado.

Outra coisa interessante é que podemos fazer um cliente mais aperfeiçoado, por exemplo, que mande estes comandos para uma faixa de IPs e assim, desligar vários computadores ou desligar os monitores de todos eles. Isso é interessante em empresas ou até mesmo em casa quando se quer enconomizar um pouco de energia e configurar o programa para que mande o comando de desligar o monitor para todos os computadores na rede ao meio-dia, para economizar na energia gasta por eles e configurar para que no fim no expediente (as 7:00 por exemplo), ele mande o comando de desligar o computador para os PCs da rede, evitando que algum fique ligado e que alguém tenha que ver se todos estão desligados, poupando energia e esforços.

Logo SDCX