⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server1.pas

📁 delphi 完全原代码,可以在d7 and windows xp下编译通过
💻 PAS
字号:
unit server1;

interface

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

type
  TForm1 = class(TForm)
    ServerSocket1: TServerSocket;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
  hotkeyid  :integer;
  procedure WMhotkeyhandle(var msg:Tmessage);
  message wm_hotkey; //响应敏感键按键消息
    { Private declarations }
  public
    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
application.Terminate;
serversocket1.Active:=false;
edit1.Text:=''
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if serversocket1.Active then
showmessage('服务器已启动!!!')
else
begin
serversocket1.Active:=true;
edit1.Text:=inttostr(serversocket1.port)
end;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
 // code,v:integer;
  text:pchar;
begin
 text:=pchar(socket.ReceiveText);
{ case text:pchar of
 '黑屏':SendMessage(Application.Handle, wm_syscommand, SC_close, 0) ;
 '不黑屏':SendMessage(Application.Handle, wm_SysCommand, SC_MonitorPower, -1);
 '注销': exitwindowsex(ewx_force,0);
 '重启': exitwindowsex(ewx_reboot,0);
 '关机':exitwindowsex(ewx_shutdown,0)
end;
     }
 if text='黑屏' then
 begin
  SendMessage(Application.Handle, wm_syscommand, SC_monitorpower, 0) ;
  end;
  if text='不黑屏' then
  begin
  SendMessage(Application.Handle, wm_SysCommand, SC_MonitorPower, -1);
  end;
  if text='注销' then begin
  exitwindowsex(ewx_force,0) end ;
  if text='重启' then begin
   exitwindowsex(ewx_reboot,0) end;
   if text='关机' then begin
    exitwindowsex(ewx_shutdown,0) end;
    
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Active :=true;
edit1.Text:=inttostr(serversocket1.port);
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;
    //减去$C000是为了保证取值范围的限制
registerhotkey(handle,hotkeyid,MOD_CONTROL or mod_Alt,$41);
    //敏感键为ctrl+Alt+A
application.ShowMainForm :=false;
end;
procedure TForm1.Wmhotkeyhandle(var msg:Tmessage);
     begin
       if (msg.LParamHi=$41) and
(msg.lparamLo=MOD_CONTROL or mod_Alt) then 
       begin
         msg.Result:=1; //该消息已经处理
         application.BringToFront;
//把窗口最前面显示
        if application.ShowMainForm=false then begin
         application.ShowMainForm :=true;
         Application.Restore;
         form1.Show;
         form1.WindowState :=wsnormal;
         end else
         begin
         application.Restore;
         
         application.ShowMainForm :=false;
         form1.Hide;
         end;
        // end
        // if application.ShowMainForm then
       //  application.ShowMainForm :=true

       end;
     end;





procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
unregisterhotkey(handle,hotkeyid);
   DeleteAtom(HotKeyID);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -