Oficina
Gerenciador Remoto
Dom 28 Mai 2006 09:01 |
- Detalhes
- Categoria: Ferramentas de Rede
- Atualização: Domingo, 14 Junho 2009 17:20
- Autor: T.J.Nogueira
- Acessos: 17214
2.0 Entendendo o Código
2.1 Servidor
Bom, como o primeiro módulo que criamos foi o Servidor, nada mais justo do que começar por ele, não é? Então vamos lá. O primeiro ponto que codificamos no nosso módulo Servidor foi o botão Ativar.
O código para este botão é:
ServerSocket1.port:=31300; ServerSocket1.Active:=true;
No código acima definimos o valor da porta a ser usada pelo ServerSocket para 31300 e, logo depois, mudamos o estado do ServerSocket para Ativo, como mostra a linha ServerSocket1.Active:=true;
O segundo ponto que codificamos no nosso Servidor foi a propriedade OnListen do ServerSocket. O código responsável é:
Label2.caption:= 'Ativado!';
O código acima inserido na propriedade OnListen do nosso ServerSocket faz com que, quando um usuário se conecte com a porta 31300 ativa do nosso módulo Servidor, a Label2 tenha sua propriedade Caption alterada para Ativado.
Agora veremos a parte mais interessante do nosso código, que é a parte referente ao evento OnClientRead do nosso módulo Servidor. O código é:
var texto: string; begin label2.Caption:='Servidor em uso.'; texto:=socket.ReceiveText; if texto='PROTECAO' then begin SendMessage(Application.Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0); end; if texto='NAVEGAR' then begin WinExec('c:\Arquivos de Programas\Internet Explorer\iexplore.exe', SW_SHOW); end; if texto='MSN' then begin WinExec('c:\Arquivos de Programas\MSN Messenger\msnmsgr.exe', SW_SHOW); end; if texto='QUIT' then begin ServerSocket1.Active:=false; form1.close; end; end;
Na parte
var texto: string;
iniciamos a variável texto que irá conter o comando repassado pelo módulo Cliente a ser executado pelo módulo Servidor. Em seguida temos:
label2.Caption:='Servidor em uso.'; texto:=socket.ReceiveText;
onde em label2.caption:='Servidor em uso'; definimos para a label2 a sua propriedade caption como 'Servidor em uso'. Depois repassamos o texto recebido do modulo Cliente em Socket.ReceiveText para a nossa variável texto.
A seguir, temos o bloco de código responsável pela execução dos comandos:
if texto='PROTECAO' then begin SendMessage(Application.Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0); end; if texto='NAVEGAR' then begin WinExec('c:\Arquivos de Programas\Internet Explorer\iexplore.exe', SW_SHOW); end; if texto='MSN' then begin WinExec('c:\Arquivos de Programas\MSN Messenger\msnmsgr.exe', SW_SHOW); end; if texto='QUIT' then begin ServerSocket1.Active:=false; form1.close; end;
No trecho
if texto='PROTECAO' then begin SendMessage(Application.Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0); end;
fazemos na linha que contém
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
Após este bloco de código acima, temos o que segue:
if texto='NAVEGAR' then begin WinExec('c:\Arquivos de Programas\Internet Explorer\iexplore.exe', SW_SHOW); end;
Aqui fazemos novamente a comparação da variável texto com uma palavra, que desta vez é NAVEGAR. Caso o que se tenha na variável texto seja igual à palavra comparada, então é executado o Internet Explorer na máquina do módulo Servidor. O código responsável por essa execução é:
WinExec('c:\Arquivos de Programas\Internet Explorer\iexplore.exe', SW_SHOW);
Por padrão, o caminho c:\Arquivos de Programas\Internet Explorer\ é o que contém o executável do Internet Explorer, mas isto poderá mudar e cabe a você na hora de programar o seu módulo Servidor checar se é realmente este o caminho na máquina em que o servidor será executado.
Prosseguindo com o código temos:
if texto='MSN' then begin WinExec('c:\Arquivos de Programas\MSN Messenger\msnmsgr.exe', SW_SHOW); end;
Mais uma vez comparamos o conteúdo da variável texto com outra palavra e, caso seja positivo, executamos uma ação. No caso, esta palavra é MSN e se for esta a palavra repassada, executaremos o MSN, o programinha de bate-papo mais famoso do mundo da nossa amiga Microsoft. O código para execução do MSN é:
WinExec('c:\Arquivos de Programas\MSN Messenger\msnmsgr.exe', SW_SHOW);
Mais uma vez vale lembrar que é possível que o caminho correto do MSN não seja este em todas as máquinas, cabendo novamente a você verificar o caminho correto na hora de construir o seu módulo Servidor.
Por fim, no código do nosso módulo Servidor temos o seguinte:
if texto='QUIT' then begin ServerSocket1.Active:=false; form1.close; end;
Novamente comparamos a variável texto com outra palavra, que no caso é QUIT. Se a comparação for positiva, executaremos uma ação, que no caso é a finalização da execução do módulo servidor cujo código responsável por isto é:
ServerSocket1.Active:=false;
Em outras palavras, desativamos o nosso ServerSocket. E para finalizar, fechamos o Módulo Servidor de uma vez com o comando:
form1.close;
E pronto! Agora você já sabe por que o módulo Servidor é capaz de funcionar. Vamos agora para o módulo Cliente!