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

📄 unit1.pas

📁 限制客户机运行程序 (有关机等功能)
💻 PAS
📖 第 1 页 / 共 2 页
字号:
begin
bsSkinMessage1.MessageDlg('请选中你要控制的对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$Z$Userlist');
       Break;
       end;
end;
end;

procedure TForm1.N1Click(Sender: TObject);
var
     i:integer;
begin
  for i:=0 to sessions do
    begin
if session[i].CUsed then
        begin
       session[i].CSocket.SendText('$Z$KILL'+bsSkinInputDialog1.InputBox('要结束的程序', '文件名', '.exe'));
    end;
    end;
end;

procedure TForm1.ServerSocketAccept(Sender: TObject;
  Socket: TCustomWinSocket);
var
    i,j:integer;
    Control:String;
begin
    j:=-1;
    for i:=0 to sessions do
    begin
        //在原有的客户端连接数组中有中断的客户端连接
        if not session[i].CUsed then
        begin
            session[i].CHandle := Socket.SocketHandle ;//客户端套接字句柄
            session[i].CSocket := Socket;               //客户端套接字
//            session[i].CName :=  Socket.RemoteHost ;      //客户端计算机名称
            session[i].CAddress := Socket.RemoteAddress ;//客户端计算机IP
            session[i].RemotePort:=socket.RemotePort;    //客户端口
            session[i].CUsed := True;                     //连接数组当前位置已经占用
            j:=i;
            Break;
        end;
        j:=i;
    end;
    if j=sessions then
    begin
    inc(sessions);
        session[j].CHandle := Socket.SocketHandle ;
        session[j].CSocket := Socket;
//        session[j].CName := Socket.RemoteHost ;
        session[j].CAddress := Socket.RemoteAddress ;
        session[j].RemotePort:=socket.RemotePort;    //客户端口
        session[j].CUsed := True;
       //    RichEdit1.Lines.Add('客户端 '+Socket.RemoteAddress + ' 连接 '+DateTimeToStr(Now));
    end;
    Listtem:= OnlineUserlist.Items.Add;
    Listtem.Caption:= Control;
    Listtem.Caption:=IntToStr(session[j].CHandle);
    Listtem.SubItems.Add('');
    Listtem.SubItems.Add(session[j].CAddress);
    Listtem.SubItems.Add(IntToStr(session[j].RemotePort));
    Socket.SendText('$Z$GetKILL'+ListBox1.Items.Text);
end;


procedure TForm1.ListBox2DblClick(Sender: TObject);
var
     i:integer;
begin

if  (OnlineUserlist.ItemIndex=-1) or (ListBox2.ItemIndex=-1) then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象或要结束的程序',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$Z$KILL'+ListBox2.Items.Strings[ListBox2.ItemIndex]);
       Break;
       end;
end;
ListBox2.Items.Delete(ListBox2.ItemIndex);

end;

procedure TForm1.N7Click(Sender: TObject);
var
     i:integer;
begin

if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$C$restrict');
       Break;
       end;
end;
end;

procedure TForm1.N8Click(Sender: TObject);
var
     i:integer;
begin

if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$K$restrict');
       Break;
       end;
end;
end;

procedure TForm1.N9Click(Sender: TObject);
var
     i:integer;
begin

if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$Z$Run'+bsSkinInputDialog1.InputBox('要结束的程序', '文件名', 'c:\1.exe'));
       Break;
       end;
end;
end;

procedure TForm1.N13Click(Sender: TObject);
var
     i:integer;
begin
if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$Z$DEL'+bsSkinInputDialog1.InputBox('要结束的程序', '文件名', 'G:\'));
       Break;
       end;
end;
end;

procedure TForm1.N14Click(Sender: TObject);
var
     i:integer;
begin
bsSkinTextDialog1.Lines.LoadFromFile(ExtractFilePath(Paramstr(0))+'kill.txt');
bsSkinTextDialog1.Execute;
bsSkinTextDialog1.Lines.SaveToFile(ExtractFilePath(Paramstr(0))+'kill.txt');
ListBox1.Items.Text:=bsSkinTextDialog1.Lines.Text;
for i:=0 to sessions do
    begin
if session[i].CUsed then
    begin
session[i].CSocket.SendText('$Z$GetKILL'+ListBox1.Items.Text);
    end;
    end;
end;

procedure TForm1.N15Click(Sender: TObject);
var
     i:integer;
begin
if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$Z$KILL'+bsSkinInputDialog1.InputBox('要结束的程序', '文件名', '.exe'));
       Break;
       end;
end;
end;

procedure TForm1.N19Click(Sender: TObject);
var
     i:integer;
begin
if  (OnlineUserlist.ItemIndex=-1) or (ListBox2.ItemIndex=-1) then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象或要结束的程序',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$Z$KILL'+ListBox2.Items.Strings[ListBox2.ItemIndex]);
       Break;
       end;
end;
ListBox2.Items.Delete(ListBox2.ItemIndex);
end;

procedure TForm1.N20Click(Sender: TObject);
var
     i:integer;
begin
if  (OnlineUserlist.ItemIndex=-1) or (ListBox2.ItemIndex=-1) then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象或要结束的程序',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CUsed then
       begin
       session[i].CSocket.SendText('$Z$KILL'+ListBox2.Items.Strings[ListBox2.ItemIndex]);
       Break;
       end;
end;
ListBox2.Items.Delete(ListBox2.ItemIndex);
end;

procedure TForm1.N21Click(Sender: TObject);
var
     i:integer;
begin
if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$K$xtkz2');
       Break;
       end;
end;
end;

procedure TForm1.N22Click(Sender: TObject);
var
     i:integer;
begin
if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$K$xtkz1');
       Break;
       end;
end;
end;

procedure TForm1.N23Click(Sender: TObject);
var
     i:integer;
begin
if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要操作对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$K$xtkz0');
       Break;
       end;
end;
end;

procedure TForm1.OnlineUserlistDblClick(Sender: TObject);
var
     i:integer;
begin
if  OnlineUserlist.ItemIndex=-1 then
begin
bsSkinMessage1.MessageDlg('请选中你要控制的对象',mtInformation, [mbOk], 0);
exit;
end;
for i:=0 to sessions do
    begin
  if  session[i].CHandle = StrToInt(OnlineUserlist.Items[i].Caption) then
       begin
       session[i].CSocket.SendText('$Z$Userlist');
       Break;
       end;
end;
end;

procedure TForm1.N24Click(Sender: TObject);
begin
ListBox2.Clear;
end;

procedure TForm1.N26Click(Sender: TObject);
var
     i:integer;
begin
for i:=0 to sessions do
    begin
  if  session[i].CUsed then
       begin
       session[i].CSocket.SendText('$K$xtkz0');
       Break;
       end;
end;
end;

procedure TForm1.N27Click(Sender: TObject);
var
     i:integer;
begin
for i:=0 to sessions do
    begin
  if  session[i].CUsed then
       begin
       session[i].CSocket.SendText('$K$xtkz2');
       Break;
       end;
end;
end;

procedure TForm1.N28Click(Sender: TObject);
var
     i:integer;
begin
for i:=0 to sessions do
    begin
  if  session[i].CUsed then
       begin
       session[i].CSocket.SendText('$K$xtkz1');
       Break;
       end;
end;
end;

end.

⌨️ 快捷键说明

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