📄 fileandclientinfoctrlunit.pas
字号:
if Length(tmpstr) <= 3 then
begin
//回到了磁盘列表处
LastPath := '';
end
else
begin
//去掉末尾的'\'
tmpstr := Copy(tmpstr, 0, Length(tmpstr) - 1);
LastPath := ExtractFilePath(tmpstr);
end;
//保存当前的文件夹
CurrentPath := tmpstr;
end;
end;
//向上按钮,进入上一级目录
procedure TFileAndInfoCtrlForm.RTBUpDirClick(Sender: TObject);
var
tmpstr : string;
begin
tmpstr := LastPath;
if tmpstr = '' then
begin
if ClientSocket <> 0 then
begin
Self.ListViewFile.Cursor := crHourGlass;
CMDHeader.Order := CMDSendFileList;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
CurrentPath := '我的电脑';
Exit;
end;
if tmpstr[Length(tmpstr)] <> '\' then tmpstr := tmpstr + '\';
if ClientSocket <> 0 then
begin
Self.ListViewFile.Cursor := crHourGlass;
CMDHeader.Order := CMDSendFileList;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
if Length(tmpstr) <= 3 then
//回到了磁盘列表处
LastPath := ''
else
begin
//去掉末尾的'\'
tmpstr := Copy(tmpstr, 0, Length(tmpstr) - 1);
LastPath := ExtractFilePath(tmpstr);
end;
//保存当前的文件夹
CurrentPath := tmpstr;
end;
//粘贴文件
procedure TFileAndInfoCtrlForm.PMPeastClick(Sender: TObject);
var
tmpStr : string;
srcLength, desLength : WORD;
begin
tmpStr := CutOrCopySourceStr;
//整理出来完整的目标文件路径
tmpStr := RCBTreeList.Text;
//得到长度信息
srcLength := Length(CutOrCopySourceStr);
desLength := Length(tmpStr);
//得到需要发送的字符串
tmpStr := CutOrCopySourceStr + tmpStr;
if ClientSocket <> 0 then
begin
CMDHeader.Order := CMDPeastFile;
CMDHeader.OrderExtend := CutOrCopy;
CMDHeader.ExdSource := srcLength;
CMDHeader.ExdDest := desLength;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
if CutOrCopy = CMDCutFile then
CutOrCopySourceStr := '';
end;
//复制文件
procedure TFileAndInfoCtrlForm.PMCopyClick(Sender: TObject);
begin
if RCBTreeList.Text = '我的电脑' then Exit;
CutOrCopy := CMDCopyFile;
CutOrCopySourceStr := ListViewFile.Selected.SubItems[3];
end;
//剪切文件
procedure TFileAndInfoCtrlForm.PMCutClick(Sender: TObject);
begin
if RCBTreeList.Text = '我的电脑' then Exit;
CutOrCopy := CMDCutFile;
CutOrCopySourceStr := ListViewFile.Selected.SubItems[3];
end;
//删除文件
procedure TFileAndInfoCtrlForm.PMDeleteClick(Sender: TObject);
var
tmpStr : string;
begin
if RCBTreeList.Text = '我的电脑' then Exit;
tmpStr := ListViewFile.Selected.SubItems[3];
if ClientSocket <> 0 then
begin
CMDHeader.Order := CMDDeleteFile;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
end;
//重命名文件
procedure TFileAndInfoCtrlForm.PMRenameClick(Sender: TObject);
var
tmpStr, tmpPath, TailStr : string;
srcLength, desLength : WORD;
begin
if RCBTreeList.Text = '我的电脑' then Exit;
TailStr := '';
tmpStr := ListViewFile.Selected.SubItems[3];
if ListViewFile.Selected.SubItems[0] = '文件夹' then
tmpStr := tmpStr + '\';
if tmpStr[Length(tmpStr)] = '\' then
begin
tmpStr := Copy(tmpStr, 0, Length(tmpStr) - 1);
TailStr := '\';
end;
//得到文件目录
tmpPath := ExtractFilePath(tmpStr);
//得到新文件名
tmpStr := ExtractFileName(tmpStr);
if not InputQuery('重命名', '请输入新的文件名', tmpStr) then Exit;
//完整额目标文件路径
tmpStr := tmpPath + tmpStr + TailStr;
//得到长度信息
srcLength := Length(ListViewFile.Selected.SubItems[3]);
desLength := Length(tmpStr);
tmpstr := ListViewFile.Selected.SubItems[3] + tmpstr;
if ClientSocket <> 0 then
begin
CMDHeader.Order := CMDRenameFile;
CMDHeader.ExdSource := srcLength;
CMDHeader.ExdDest := desLength;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
end;
//粘贴被激活的条件
procedure TFileAndInfoCtrlForm.PopupMenu1Popup(Sender: TObject);
begin
if CutOrCopySourceStr = '' then
PMPeast.Enabled := False
else
PMPeast.Enabled := True;
end;
//新建文件夹
procedure TFileAndInfoCtrlForm.RPMCreateDirClick(Sender: TObject);
var
tmpStr, tmpPath : string;
begin
if RCBTreeList.Text = '我的电脑' then Exit;
//得到文件目录
tmpPath := RCBTreeList.Text;
if tmpPath[(Length(tmpPath))] <> '\' then tmpPath := tmpPath + '\';
tmpStr := '新建文件夹';
if not InputQuery('新建文件夹', '请输入文件夹名', tmpStr) then Exit;
//完整目标文件路径
tmpStr := tmpPath + tmpStr;
if ClientSocket <> 0 then
begin
CMDHeader.Order := CMDMakeDir;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
end;
//刷新
procedure TFileAndInfoCtrlForm.RPMRefreshClick(Sender: TObject);
var
tmpstr : string;
begin
tmpstr := RCBTreeList.Text;
if tmpstr = '我的电脑' then tmpstr := '';
if tmpstr = '' then
begin
if ClientSocket <> 0 then
begin
Self.ListViewFile.Cursor := crHourGlass;
CMDHeader.Order := CMDSendFileList;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
Exit;
end
else
begin
if ClientSocket <> 0 then
begin
Self.ListViewFile.Cursor := crHourGlass;
CMDHeader.Order := CMDSendFileList;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
end;
end;
//正常运行
procedure TFileAndInfoCtrlForm.PMRunNormalClick(Sender: TObject);
var
tmpStr : string;
ExeStr : string;
begin
if ListViewFile.Selected.SubItems[0] = '文件夹' then Exit;
tmpStr := ListViewFile.Selected.SubItems[3];
//if tmpStr[length(tmpStr) - 3] <> '.' then Exit;
//ExeStr := Copy(tmpStr, length(tmpStr) - 2, 3);
if UpperCase(ExeStr) <> UpperCase('exe') then Exit;
if (ClientSocket <> 0) then
begin
CMDHeader.Order := CMDRunNormal;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
end;
//隐藏运行
procedure TFileAndInfoCtrlForm.PMRunHideClick(Sender: TObject);
var
tmpStr : string;
ExeStr : string;
begin
if ListViewFile.Selected.SubItems[0] = '文件夹' then Exit;
tmpStr := ListViewFile.Selected.SubItems[3];
if tmpStr[length(tmpStr) - 3] <> '.' then Exit;
ExeStr := Copy(tmpStr, length(tmpStr) - 3, 3);
if UpperCase(ExeStr) <> UpperCase('exe') then Exit;
if (ClientSocket <> 0) then
begin
CMDHeader.Order := CMDRunHide;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
end;
//带有参数的运行
procedure TFileAndInfoCtrlForm.PMRunWithParamClick(Sender: TObject);
var
tmpStr : string;
ExeStr : string;
RunParam : string;
srcLength, desLength : WORD;
begin
if ListViewFile.Selected.SubItems[0] = '文件夹' then Exit;
tmpStr := ListViewFile.Selected.SubItems[3];
if tmpStr[length(tmpStr) - 3] <> '.' then Exit;
ExeStr := Copy(tmpStr, length(tmpStr) - 3, 3);
if UpperCase(ExeStr) <> UpperCase('exe') then Exit;
//得到长度信息
srcLength := Length(tmpStr);
RunParam := '';
if not InputQuery('输入参数', '请输入运行的参数', RunParam) then Exit;
desLength := Length(RunParam);
if desLength = 0 then Exit;
//得到需要发送的字符串
tmpStr := tmpStr +RunParam ;
if ClientSocket <> 0 then
begin
CMDHeader.Order := CMDPeastFile;
CMDHeader.OrderExtend := CutOrCopy;
CMDHeader.ExdSource := srcLength;
CMDHeader.ExdDest := desLength;
SetCmdSignByte(ClientSocket, CMDHeader, False, tmpstr);
end;
end;
//切换的时候,直接显示主机信息
procedure TFileAndInfoCtrlForm.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePageIndex = 1 then
begin
if ListViewWindowList.Items.Count > 0 then Exit;
PageControl1.Enabled := False;
RPMRefreshWindowListClick(Sender);
Exit;
end;
if PageControl1.ActivePageIndex = 2 then
begin
if ListViewProcessList.Items.Count > 0 then Exit;
PageControl1.Enabled := False;
RPMRefreshProcessListClick(Sender);
Exit;
end;
if PageControl1.ActivePageIndex = 3 then
begin
if ListViewService.Items.Count > 0 then Exit;
PageControl1.Enabled := False;
RPMRefreshListClick(Sender);
Exit;
end;
if (PageControl1.ActivePageIndex = 4) then
begin
if ListViewSysInfo.Items.Count > 0 then Exit;
PageControl1.Enabled := False;
RPMRefreshSysInfoClick(Sender);
Exit;
end;
end;
//获取远程信息列表
procedure TFileAndInfoCtrlForm.RPMRefreshSysInfoClick(Sender: TObject);
begin
if (ClientSocket <> 0)then
begin
CMDHeader.Order := CMDGetSystemInfo;
SetCmdSignByte(ClientSocket, CMDHeader, False);
Self.ListViewSysInfo.Cursor := crHourGlass;
end;
end;
//获取服务列表
procedure TFileAndInfoCtrlForm.RPMRefreshListClick(Sender: TObject);
begin
if (ClientSocket <> 0) then
begin
CMDHeader.Order := CMDGetServcieList;
SetCmdSignByte(ClientSocket, CMDHeader, False);
Self.ListViewService.Cursor := crHourGlass;
end;
end;
//获取窗口列表
procedure TFileAndInfoCtrlForm.RPMRefreshWindowListClick(Sender: TObject);
begin
if (ClientSocket <> 0) then
begin
CMDHeader.Order := CMDGetWindowList;
SetCmdSignByte(ClientSocket, CMDHeader, False);
Self.ListViewWindowList.Cursor := crHourGlass;
end;
end;
//获取进程列表
procedure TFileAndInfoCtrlForm.RPMRefreshProcessListClick(Sender: TObject);
begin
if (ClientSocket <> 0) then
begin
CMDHeader.Order := CMDGetProcessList;
SetCmdSignByte(ClientSocket, CMDHeader, False);
Self.ListViewProcessList.Cursor := crHourGlass;
end;
end;
(*-------------------------------------排序----------------------------------*)
//ListViewService 排序
procedure TFileAndInfoCtrlForm.ListViewServiceColumnClick(Sender: TObject;
Column: TListColumn);
begin
ServiceListSortCol := Column.Index;
if (ServiceListSortWay = 1) then ServiceListSortWay := -1 else ServiceListSortWay := 1;
(Sender as TCustomListView).AlphaSort;
end;
//ListViewService 排序
procedure TFileAndInfoCtrlForm.ListViewServiceCompare(Sender: TObject;
Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
t : Integer;
begin
if (ServiceListSortCol = 0) then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -