📄 server1.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 + -