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.
Observação: Por: Renan Valente Rangel
|