Boot remoto via Internet ou Rede Local

02/03/2003

0

Veja como enviar uma mensagem de boot para uma máquina remota na internet ou na sua rede local.



{-----------------------------------------------------------------------------
Unit Name: formClient
Author: Stewart Moss

Creation Date: 27 February, 2002 (16:30)
Documentation Date: 27 February, 2002 (16:30)

Version 1.0
-----------------------------------------------------------------------------

Description:

This is to demonstrate shutting down a machine over the network.
It is in reply to a question posted on www.delphi3000.com.

** Tobias R. requests the article ´How to send a shutdown command in a network?´ **

This is not really what you want. I think you are looking for some kind
of IPC or RPC command. But this will work. Each machine needs to run
a copy of this server.

It uses the standard delphi ServerSocket found in the ´ScktComp´ unit.

Create a form (name frmClient) with a TServerSocket on it (name ServerSocket)
set the Port property of ServerSocket to 5555. Add a TMemo called Memo1.

It listens on port 5555 using TCP/IP.

It has a very simple protocol.
Z = Show message with ´Z´
B = Beep
S = Shutdown windows

Run the program.. Then from the command prompt type in
´telnet localhost 5555´. Type in one of the three commands above
(all in uppercase) and the server will respond.

Copyright 2002 by Stewart Moss. All rights reserved.
-----------------------------------------------------------------------------}

unit formClient;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ScktComp, StdCtrls;

type
TfrmClient = class(TForm)
ServerSocket: TServerSocket;
Memo1: TMemo;
procedure ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmClient: TfrmClient;

implementation

{$R *.DFM}

procedure TfrmClient.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Incomming : string;
begin
// read off the socket
Incomming := Socket.ReceiveText;

memo1.Lines.Add(incomming);

if Incomming = ´S´ then // Shutdown Protocol
ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 );

If Incomming = ´B´ then // Beep Protocol
Beep;

If Incomming = ´Z´ then // Z protocol
showmessage(´Z´);
end;

procedure TfrmClient.FormCreate(Sender: TObject);
begin
ServerSocket.Active := true;
end;

procedure TfrmClient.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ServerSocket.Active := false;
end;

end.


Carnette

Carnette

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar