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

📄 scanipunit.pas

📁 DELPHI 下远程控制源码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
       end;
   end;
   repeat
      Application.ProcessMessages;
      Gauge5.Progress:=SdScanCount;          
   until SdScanCount=0;
   SpeedButton8.Down:=True;
   Gauge5.Progress:=0;
   Application.MessageBox('===扫描任务完成!===','扫描完毕',
                                     MB_OK+MB_ICONSTOP);
end; 
procedure TScanIPFm.SingleHostScan2;
var
   i:integer;
   ThePortScan:ScanHostPortThread;
   FromPort,ToPort:integer;
begin
   
   Gauge1.MaxValue:=StrToInt(Edit12.Text);
   Gauge1.Progress:=0;
   Gauge5.MaxValue:=MultiScanCount;
   Gauge5.Progress:=0;
   FromPort:=StrToInt(Edit11.text);
   ToPort:=StrToInt(Edit12.text);
   For i:=FromPort To ToPort do
   begin
       repeat
          Application.ProcessMessages;
          Gauge5.Progress:=SdScanCount;
          if SpeedButton8.Down then
          begin
            repeat
              Application.ProcessMessages;
              Gauge5.Progress:=SdScanCount;          
            until SdScanCount=0;
            Application.MessageBox('===扫描由您主动结束===','扫描中断',
                                     MB_OK+MB_ICONSTOP);
            Gauge5.Progress:=0;
            exit;
          end;
       until SdScanCount<MultiScanCount;
       Gauge1.Progress:=i;
       Gauge5.Progress:=SdScanCount;
       Panel8.Caption:='扫描'+Edit10.Text+':'+IntToStr(i);
       Try
         ThePortScan:=ScanHostPortThread.Create(Edit10.Text,i,TreeView1);
       except
       end;
   end;
   repeat
      Application.ProcessMessages;
      Gauge5.Progress:=SdScanCount;          
   until SdScanCount=0;
   Gauge5.Progress:=0;  
end;
procedure TScanIPFm.MultiHostScan; 
var
   i:integer;
   TheNewNode:TTreeNode;
begin
  SdScanCount:=0;
  For i:=0 to ListView1.Items.Count-1 do
  begin
      if ListView1.Items[i].Checked then
      begin
         Edit10.Text:=ListView1.Items[i].Caption;
         TheNewNode:=TreeView1.Items.Add(nil,Edit10.Text);
         TheNewNode.ImageIndex:=0;
         TheNewNode.StateIndex:=0;
         TheNewNode.SelectedIndex:=0;        
         Repeat
           Application.ProcessMessages;
           if SpeedButton8.Down then exit;
         until SdScanCount=0;
         SingleHostScan2;
      end;       
  end;   
  Application.MessageBox('===扫描任务完成!===','扫描完毕',
                                                MB_OK+MB_ICONSTOP);
  SpeedButton8.Down:=True;
end;
procedure TScanIPFm.RadioGroup1Click(Sender: TObject);
begin
   if RadioGroup1.ItemIndex=0 then
      Edit9.Enabled:=False else
      Edit9.Enabled:=True;
end;

procedure TScanIPFm.Timer1Timer(Sender: TObject);
var
  MidColor:TColor;
begin
  Gauge3.Progress:=Gauge3.Progress+10;
  
  if Gauge3.Progress=100 then
  begin
      Gauge3.Progress:=0;
      MidColor:=Gauge3.BackColor;
      Gauge3.BackColor:=Gauge3.ForeColor;
      Gauge3.ForeColor:=MidColor;
  end;
end;

procedure TScanIPFm.SpeedButton5Click(Sender: TObject);
begin
   if RadioGroup1.ItemIndex=1 then
       ScanPortPorcess else PingPorcess;
end;

procedure TScanIPFm.SpeedButton6Click(Sender: TObject);
begin
   Timer1.Enabled:=false;
end;

procedure TScanIPFm.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=8 then exit;
   if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit2.SetFocus;
   Edit5.Text:=Edit1.Text;
end;

procedure TScanIPFm.FormCreate(Sender: TObject);
begin
    OldEditText:='0';
    SdPingCount  :=0;
    SdScanCount  :=0;
    MultiPingCount:=100;
    MultiScanCount:=100;
    LetPingSingle:=TCriticalSection.Create;
    LetScanSingle:=TCriticalSection.Create;     
end;

procedure TScanIPFm.Edit2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=8 then exit;
   if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit3.SetFocus;
   Edit6.Text:=Edit2.Text; 
end;

procedure TScanIPFm.Edit3KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=8 then exit;
   if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit4.SetFocus;
   Edit7.Text:=Edit3.Text;
end;

procedure TScanIPFm.Edit4KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=8 then exit;
   if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit5.SetFocus;
end;

procedure TScanIPFm.Edit5KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=8 then exit;
  if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit6.SetFocus;
end;

procedure TScanIPFm.Edit6KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=8 then exit;
   if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit7.SetFocus;
end;

procedure TScanIPFm.Edit7KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=8 then exit;
   if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit8.SetFocus;
end;

procedure TScanIPFm.Edit8KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=8 then exit;
   if (48<=Key) and (Key<=57) then
   begin
     if StrToInt((Sender as TEdit).Text)>255 then
         (Sender as TEdit).Text:='255';
   end else (Sender as TEdit).Text:=OldEditText;
   OldEditText:=(Sender as TEdit).Text;
   if Key=190 then Edit1.SetFocus;
end;

procedure TScanIPFm.SpeedButton4Click(Sender: TObject);
begin
  Edit4.Text:='0';
  Edit8.Text:='255';
end;

procedure TScanIPFm.SpeedButton3Click(Sender: TObject);
begin
  Edit3.Text:='0';
  Edit7.Text:='255';
end;

procedure TScanIPFm.SpeedButton2Click(Sender: TObject);
begin
   Edit2.Text:='0';
   Edit6.Text:='255';
end;

procedure TScanIPFm.SpeedButton1Click(Sender: TObject);
begin
   Edit1.Text:='0';
   Edit5.Text:='255';
end;

procedure TScanIPFm.SpinButton1UpClick(Sender: TObject);
begin
    IF StrToInt(FromEdit.Text)+1>255 Then exit;
    if FromEdit<>nil then    
      FromEdit.Text:=IntToStr(StrToInt(FromEdit.Text)+1);
end;

procedure TScanIPFm.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   FromEdit:=(Sender as TEdit);   
end;

procedure TScanIPFm.Edit5MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   ToEdit:=(Sender as TEdit)
end;

procedure TScanIPFm.SpinButton1DownClick(Sender: TObject);
begin
    If StrToInt(FromEdit.Text)-1<0 Then exit;
    if FromEdit<>nil then    
      FromEdit.Text:=IntToStr(StrToInt(FromEdit.Text)-1);
end;

procedure TScanIPFm.SpinButton2DownClick(Sender: TObject);
begin
    If StrToInt(ToEdit.Text)-1<0 Then exit;
    if ToEdit<>nil then
      ToEdit.Text:=IntToStr(StrToInt(ToEdit.Text)-1);
end;

procedure TScanIPFm.SpinButton2UpClick(Sender: TObject);
begin
    If StrToInt(ToEdit.Text)+1>255 Then exit;
    if ToEdit<>nil then    
      ToEdit.Text:=IntToStr(StrToInt(ToEdit.Text)+1);
end;

procedure TScanIPFm.Edit1Change(Sender: TObject);
begin
   if (Sender as TEdit).Text='' then (Sender as TEdit).Text:='0';
end;

procedure TScanIPFm.FormDestroy(Sender: TObject);
begin
   LetPingSingle.Free;
   LetScanSingle.Free;
end;

procedure TScanIPFm.Edit2Change(Sender: TObject);
begin
  if (Sender as TEdit).Text='' then (Sender as TEdit).Text:='0';
  
end;

procedure TScanIPFm.Edit3Change(Sender: TObject);
begin
   if (Sender as TEdit).Text='' then (Sender as TEdit).Text:='0';   
end;

procedure TScanIPFm.SpinEdit1Change(Sender: TObject);
begin
   MultiPingCount:=SpinEdit1.Value;
   MultiScanCount:=SpinEdit1.Value;
end;

procedure TScanIPFm.ListView1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
   ListView1.Hint:='共搜索到'+IntToStr(ListView1.Items.Count)+'个';
end;

procedure TScanIPFm.SpeedButton15Click(Sender: TObject);
begin
   Close;
end;

procedure TScanIPFm.SpeedButton11Click(Sender: TObject);
begin
   ListView1.Items.Clear;
   Panel10.Caption:='扫描结果已全部清除';
end;

procedure TScanIPFm.ListView1Click(Sender: TObject);
begin
     if ListView1.Selected<>nil then 
         SpeedButton12.Enabled:=True else
           SpeedButton12.Enabled:=False;
     if ListView1.Selected<>nil then
         Edit10.Text:=ListView1.Selected.Caption;
         
end;

procedure TScanIPFm.SpeedButton13Click(Sender: TObject);
var
   SaveList:TStringList;
   i:integer; 
begin
   if SaveDialog1.Execute then
   begin    
     SaveList:=TStringList.Create;
     for i:=0 to ListView1.Items.Count-1 do
       SaveList.Add(ListView1.Items[i].Caption);
     SaveList.SaveToFile(SaveDialog1.FileName);
     Savelist.Free;
   end;
end;

procedure TScanIPFm.RadioGroup2Click(Sender: TObject);
begin
    if RadioGroup2.ItemIndex=0 then
         Edit10.Enabled:=True  else 
           Edit10.Enabled:=False;
    
end;

procedure TScanIPFm.FormShow(Sender: TObject);
begin
     IdIPWatch1.Active:=True;
     ComboBox1.Text:=IdIPWatch1.CurrentIP;
     ComboBox1.Items.Text:=IdIPWatch1.IPHistoryList.Text;
     IdIPWatch1.Active:=False;
     FillLocalIP;
     FromEdit:=Edit4;ToEdit:=Edit8;      
end;

procedure TScanIPFm.N2Click(Sender: TObject);
begin
    if ListView1.Selected<>nil then
          ListView1.Selected.Delete;
end;

procedure TScanIPFm.N3Click(Sender: TObject);
begin
   if ListView1.Selected<>nil then
          ListView1.Items.Clear;
end;

procedure TScanIPFm.SpeedButton7Click(Sender: TObject);
begin
   if RadioGroup2.ItemIndex=0 then
       SingleHostScan else
         MultiHostScan;         
end;

procedure TScanIPFm.N4Click(Sender: TObject);
var
    i : integer;
begin
    For i:=0 to ListView1.Items.Count-1 do
         ListView1.Items[i].Checked:=True;
end;

procedure TScanIPFm.N5Click(Sender: TObject);
var
    i : integer;
begin
    For i:=0 to ListView1.Items.Count-1 do
         ListView1.Items[i].Checked:=False;
end;


procedure TScanIPFm.N6Click(Sender: TObject);
begin
   if TreeView1.Selected<>nil then
          TreeView1.Selected.Delete;
end;

procedure TScanIPFm.N7Click(Sender: TObject);
begin
   TreeView1.Items.Clear;
end;

procedure TScanIPFm.N1Click(Sender: TObject);
begin
   if ListView1.Selected<>nil then
   begin
       UserForm.MaskEdit2.Text:=ListView1.Selected.Caption;
       UserForm.ComboBox1.Enabled:=True;
       UserForm.ShowModal;
       UserForm.ComboBox1.Enabled:=False;
   end;
end;

procedure TScanIPFm.SpeedButton12Click(Sender: TObject);
begin
   N1Click(self);
end;

end.

⌨️ 快捷键说明

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