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

📄 server.pas

📁 有关密码为: 服务端:为 “1”。 客户端:为机器的月份+日期。 如“2005/08/05”
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  end;
end;



procedure TForm1.glj(i:integer);
 //-----------自定义子程序:锁定功能键 参数:1锁定 2 解锁
var
 glj1: integer;
begin
if i=1 then
   systemparametersinfo(spi_screensaverrunning,1,@glj1,0)
 else
   systemparametersinfo(spi_screensaverrunning,0,@glj1,0)
end;  //-------自定义子程序:锁定功能键 参数:1锁定 2 解锁

procedure TForm1.lckmse();
var
 rtfield: TRect;
begin
rtfield:= Rect(0, 0, 1, 1);
// 限制鼠标移动区域
ClipCursor(@rtfield);
end;

procedure TForm1.unmse();
var
 rtScreen: TRect;
begin
//解除限制
rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
ClipCursor(@rtScreen);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 ReqCode:array[0..29] of char;
 bgip:array[0..15] of char;
 szj0,szj1,ReqCodeStr,bgip1:string;
 szj2,bgip2,bgip3:integer;
begin
   mima4; //密码为当前日期中的月+日
//在本机的IP地址范围内搜主机 分解IP前3段
   bgip3:=0;
   bgip1:=NMDayTime1.LocalIP;
   StrpCopy(bgip,bgip1);
   bgip2:=0;
   while bgip3<3 do
     begin
      bgip1:=bgip[bgip2];
      if bgip1='.' then bgip3:=bgip3+1;
      bgip2:=bgip2+1;
     end;
    bgip1:=NMDayTime1.LocalIP;
    delete(bgip1,bgip2+1,12);
// 分解IP前3段完 即***.***.***.
//szj0:='192.168.0.';
szj0:=bgip1;
szj1:='0';
szj2:=0;
RsltStream:=TMemoryStream.Create;
TmpStream:=TMemoryStream.Create;
BmpStream:=TMemoryStream.Create;
application.Title:=' ';
//应用程序没有名称,按Ctrl+Alt+Del时看不到程序
//application.showmainform:=false;
//程序运行时不显示
//BmpStream:=TMemoryStream.Create;


//运行时进行登录服务器,发送 计算机名和IP
while  szj2<256 do //搜索主机
  begin
      //发计算机名
    ReqCodeStr:='mz'+ComputerName;
    StrpCopy(ReqCode,ReqCodeStr);
    TmpStream.Clear;
    RsltStream.Clear;
    SUDP.RemoteHost:=szj0+szj1;
    SUDP.SendBuffer(ReqCode,30);
      //发IP  地址
    ReqCodeStr:='ip'+NMDayTime1.LocalIP;
    StrpCopy(ReqCode,ReqCodeStr);
    TmpStream.Clear;
    RsltStream.Clear;
    SUDP.RemoteHost:=szj0+szj1;
    SUDP.SendBuffer(ReqCode,30);
    szj2:=szj2+1;
    szj1:=inttostr(szj2);
  end;   //搜索主机完


  //以下是建立任务栏图标
 myicon.cbSize:=sizeof(TNotifyicondata);
 myicon.Wnd:=handle;
 myicon.uID:=1;
 myicon.uFlags:=nif_message or nif_tip or nif_icon;
 myicon.uCallbackMessage:=wm_icb;
 myicon.hIcon:=application.Icon.Handle;
 myicon.szTip:='超前电脑计费 V1.0';
 shell_notifyicon(nim_add,@myicon);
   //以上是建立任务栏图标

 {--运行开始时有主机发来全脱机
 时不开控制直接隐藏任务 }
lbox1.Items.Clear;
if fileexists('d:\yfjf.com') then lbox1.Items.LoadFromFile('d:\yfjf.com') else lbox1.Items[0]:='qwerqwe';
if lbox1.Items[0]='szxzxq_yfjf'+ComputerName then
     ycck
 else
glj(1); //  锁定功能键

end;  //建立窗口函数完

//退出程序
procedure Tform1.winexit(var msg: Tmessage);
begin
  msg.Result:=1;
  application.ProcessMessages;
  application.Terminate;
end;

procedure TForm1.SUDPDataReceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
var
  CtrlCode:array[0..250] of char;
  Trun,trun1:string;
begin    //---------读取控制码   处理控制
  SUDP.ReadBuffer(CtrlCode,NumberBytes);
  // 读取控制码

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='ccompu' then
    //到时间通知
   begin
   Trun:=CtrlCode;
   delete(trun,1,6);
   delete(trun,5,3);
   delete(trun,1,2);
    server3.M1.Clear;
    server3.M1.Lines.Add('你的时间只有 '+trun+' 分钟了,请续费或做好下机准备!');
    server3.Show;
   end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='hdesk' then
   //锁定电脑
   begin
   form1.Show;
   //使窗口始终保持在最前 来自编程实例与技巧
  setwindowpos(form1.Handle,hwnd_topmost,form1.Left,form1.Top,form1.Width,form1.Height,0);
   glj(1);
   end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='sdesk' then
  //解锁电脑
  begin
  ycck;
  glj(2);
  end;

if CtrlCode[0]+CtrlCode[1]='xx' then
  //接收到发来的信息
   begin
   Trun1:=CtrlCode;
   delete(trun1,1,2);
   Application.MessageBox(PCHAR(trun1),pchar(ComputerName),MB_OK);
   end;

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='chjd' then
  //接收到发来的此号已登录
   edit1.Text:='此号已登录了';
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='rest' then
 //重新启动计算机
   xq_close(1);

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='close' then
 //关闭计算机
 xq_close(0);

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='zjip' then
//主机发来IP
   begin
    zjip:=CtrlCode;
    delete(zjip,1,4);
   end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='sfnw' then
//主机请求联系
   begin
   zjip:=CtrlCode;
   delete(zjip,1,5);
   fxx('sfnj'+CtrlCode[4]+NMDayTime1.LocalIP,zjip); //返回联机信息
   end;
//主机发来全脱
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='wqtj' then
begin
  Trun:=CtrlCode;
   delete(trun,1,5);
   trun:=trun+ComputerName;
lbox1.Items[0]:=Trun;
lbox1.Items.SaveToFile('d:\yfjf.com');
end;

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='proc' then
//发来查进程
begin
  MY_PROC;
end;

end;   //---------读取控制码完

procedure TForm1.FormDestroy(Sender: TObject);
 //删除图标
begin
BmpStream.Free;
RsltStream.Free;
TmpStream.Free;
shell_notifyicon(nim_delete,@myicon);
end;

procedure TForm1.wmicb(var msg:TMessage);
  //图标与菜单联系
var tcwz:TPoint;
begin
case msg.LParam of
wm_lbuttonup:   //左键
  begin
  getcursorpos(tcwz);
  tccd.Popup(tcwz.x,tcwz.y);
  end;
wm_rbuttonup:     //右键
  begin
  getcursorpos(tcwz);
  tccd.Popup(tcwz.x,tcwz.y);
  end;
end;
end;

procedure TForm1.N3Click(Sender: TObject);
begin

if mima=ma then close;

end;

procedure TForm1.N1Click(Sender: TObject);
//查已用时间
begin
 fxx('wyys'+NMDayTime1.LocalIP,zjip);
end;

procedure TForm1.N2Click(Sender: TObject);
begin
fxx('hyxj'+NMDayTime1.LocalIP,zjip);
end;

procedure TForm1.Button4Click(Sender: TObject);
var
 hydn1:string;
begin
  hydn1:='                       ';
form1.FXX('yhdl'+form1.NMDayTime1.LocalIP+hydn1+edit1.Text+edit2.Text,zjip);
if edit1.Text<>'此号已登录了' then  edit1.Text:='';
edit2.Text:=''
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if mima=edit2.Text then  ycck;
edit2.Text:='';
//cazuji();
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if ver98() then
if application.messagebox('真要关机吗???','注意',
   mb_yesno+mb_defbutton2+mb_iconquestion+mb_systemmodal)<>6 then  exit;
    xq_close(0);
 // ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE,0);

end;

procedure TForm1.FormShow(Sender: TObject);
begin
 timer1.Enabled:=true; //打开时钟
 gjsj:=1800;              //恢复时钟时间
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  xd:trect;
begin              //限定鼠标
   xd:=p1.BoundsRect;
   mapwindowpoints(handle,0,xd,2);
   clipcursor(@xd);
end;

procedure TForm1.FormHide(Sender: TObject);
begin
form1.glj(2);
clipcursor(0);  //解限定鼠标
  timer1.Enabled:=false;
  gjsj:=1800;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
// 开功能键
begin
glj(2);
end;

procedure TForm1.N7Click(Sender: TObject);
//关机
begin
if application.messagebox('真要关机吗???','注意',
   mb_yesno+mb_defbutton2+mb_iconquestion+mb_systemmodal)<>6 then
   exit;
   xq_close(0);
 // ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE,0);
end;

procedure TForm1.N9Click(Sender: TObject);
var
  xinxi:string;
begin
 xinxi:=inputbox('请输入要发送的信息','信息','');
 if xinxi<>'' then
  fxx('xx'+ComputerName+':'+xinxi,zjip);
end;



procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if gjsj<=0 then xq_close(0); //ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE,0);
 gjsj:=gjsj-1;
 //使窗口始终在最前
 if not(ver98()) then setwindowpos(form1.Handle,hwnd_topmost,form1.Left,form1.Top,form1.Width,form1.Height,0);
 label2.Caption:=inttostr(round(gjsj/10));

 end;

procedure TForm1.FormResize(Sender: TObject);
begin
 p1.left:=round((form1.Width-p1.Width)/2+20);
 p1.top:=round((form1.Height-p1.Height)/2-50);
 le1.left:=form1.Width-le1.Width-50;
 le1.top:=form1.Height-le1.Height-50;
end;

procedure TForm1.N6Click(Sender: TObject);
begin
if mima<>ma then reg_auto('1','servers.exe') else reg_auto('2','') ;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Button4Click(Sender);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
//查找主机
  if zjip='' then
     begin
      edit1.text:='还未连上主机' ;
      cazuji;
     end
  else
     begin
      timer2.Enabled:=false;
      edit1.Text:='';
     end
end;

end.

⌨️ 快捷键说明

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