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

📄 main.pas

📁 数据安全专家(BSE)开源发布
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit Main;

interface

uses
  Windows, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, Buttons, ExtCtrls, Spin, Menus, dcDiskScanner,
  dcInternal, dcStdDialogs, dcBrowseDialog, dcDiskInfo, dcFileInfo,
  dcShellProperties, dcFileAssociation, dcShellIcon, dcShellLink,
  dcFileCRC, dcEdits, dcFolderView, dcFolderMonitor,
  dcSystemImageList, dcComCtrls;

type
  TForm1 = class(TForm)
    PageControl: TPageControl;
    DiskScannerSheet: TTabSheet;
    MultiDiskScannerSheet: TTabSheet;
    OthersSheet: TTabSheet;
    Panel2: TPanel;
    MultiDiskScannerSearch: TBitBtn;
    MultiDiskScannerStop: TBitBtn;
    Panel3: TPanel;
    Splitter2: TSplitter;
    Panel1: TPanel;
    Splitter1: TSplitter;
    GroupBox1: TGroupBox;
    IncludeList: TListView;
    Panel4: TPanel;
    Label1: TLabel;
    Add1: TBitBtn;
    Delete1: TBitBtn;
    GroupBox2: TGroupBox;
    ExcludeList: TListView;
    Panel5: TPanel;
    Label2: TLabel;
    Add2: TBitBtn;
    Delete2: TBitBtn;
    GroupBox3: TGroupBox;
    ResultsList: TListView;
    Panel6: TPanel;
    DiskScannerSearch: TBitBtn;
    DiskScannerStop: TBitBtn;
    GroupBox7: TGroupBox;
    MaxMatchesSpin1: TSpinEdit;
    UnlimitedCheck1: TCheckBox;
    Panel7: TPanel;
    Panel8: TPanel;
    GroupBox4: TGroupBox;
    DiskScannerResults: TListView;
    Label3: TLabel;
    Label4: TLabel;
    SearchMaskEdit: TComboBox;
    Panel9: TPanel;
    GroupBox9: TGroupBox;
    Label8: TLabel;
    Label9: TLabel;
    AnyTimeCheck: TCheckBox;
    CreatedRadio: TRadioButton;
    ModifiedRadio: TRadioButton;
    SinceDate: TDateTimePicker;
    TillDate: TDateTimePicker;
    GroupBox6: TGroupBox;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    AnySizeCheck: TCheckBox;
    AtLeastSpin: TSpinEdit;
    AtMostSpin: TSpinEdit;
    Panel10: TPanel;
    GroupBox5: TGroupBox;
    ReadOnlyCheck: TCheckBox;
    HiddenCheck: TCheckBox;
    SystemCheck: TCheckBox;
    DirectoryCheck: TCheckBox;
    ArchiveCheck: TCheckBox;
    AnyCheck: TCheckBox;
    NormalCheck: TCheckBox;
    GroupBox10: TGroupBox;
    IncludeSubfoldersCheck: TCheckBox;
    IncludeHiddenSubfoldersCheck: TCheckBox;
    StatusBar: TStatusBar;
    GroupBox8: TGroupBox;
    MaxMatchesSpin2: TSpinEdit;
    UnlimitedCheck2: TCheckBox;
    GroupBox11: TGroupBox;
    DiskInfoView: TListView;
    GroupBox12: TGroupBox;
    GroupBox13: TGroupBox;
    ListBox: TListBox;
    Panel11: TPanel;
    GetFileInfoBtn: TBitBtn;
    IconsBox: TGroupBox;
    LargeIcon: TImage;
    SmallIcon: TImage;
    Label10: TLabel;
    Label11: TLabel;
    DiskBrowserBtn: TBitBtn;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    BrowseForCombo: TComboBox;
    SpecLocation: TComboBox;
    Msg: TEdit;
    ShowPathCheck: TCheckBox;
    ShowAncCheck: TCheckBox;
    ShowNetCheck: TCheckBox;
    Label15: TLabel;
    GetDiskInfo: TBitBtn;
    TabSheet1: TTabSheet;
    GroupBox14: TGroupBox;
    Panel12: TPanel;
    ExtIconsBox: TGroupBox;
    ExtLargeIcon: TImage;
    ExtSmallIcon: TImage;
    Label16: TLabel;
    Label17: TLabel;
    ExtListBox: TListBox;
    Label18: TLabel;
    GetBtn: TBitBtn;
    ExtEdit: TComboBox;
    Panel13: TPanel;
    InstallTestExtensionBtn: TButton;
    UninstallTestExtensionBtn: TButton;
    Label19: TLabel;
    Label20: TLabel;
    GroupBox15: TGroupBox;
    ShListBox: TListBox;
    Panel14: TPanel;
    ShIconsBox: TGroupBox;
    ShLargeIcon: TImage;
    ShSmallIcon: TImage;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    GetShellIconBtn: TBitBtn;
    DereferenceBox: TCheckBox;
    LinkBox: TCheckBox;
    OpenBox: TCheckBox;
    SelectedBox: TCheckBox;
    TabSheet2: TTabSheet;
    GroupBox16: TGroupBox;
    GroupBox17: TGroupBox;
    Panel15: TPanel;
    GetShortcutInfoBtn: TBitBtn;
    ShortcutIconsBox: TGroupBox;
    ShortcutLargeIcon: TImage;
    ShortcutSmallIcon: TImage;
    Label24: TLabel;
    Label25: TLabel;
    ShortcutListBox: TListBox;
    GroupBox18: TGroupBox;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    SaveShellLinkBtn: TBitBtn;
    RunParamsEdit: TEdit;
    WorkingDirEdit: TEdit;
    Label26: TLabel;
    ShowFilesCheck: TCheckBox;
    GroupBox19: TGroupBox;
    CRCMethodCombo: TComboBox;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    CRCResult: TEdit;
    Label33: TLabel;
    CRCResultHex: TEdit;
    DiskScannerSuspended: TCheckBox;
    MultiDiskScannerSuspended: TCheckBox;
    StartFolder: TdcFolderEdit;
    ShObjectEdit: TdcFolderEdit;
    CRCFilenameEdit: TdcFileEdit;
    LinkTargetEdit: TdcFileEdit;
    FolderMonitorSheet: TTabSheet;
    Panel16: TPanel;
    Label34: TLabel;
    dcFolderEdit1: TdcFolderEdit;
    GroupBox20: TGroupBox;
    Panel18: TPanel;
    ViewStyleComboBox: TComboBox;
    Label35: TLabel;
    Panel17: TPanel;
    Label37: TLabel;
    Label38: TLabel;
    Label39: TLabel;
    UpBtn: TSpeedButton;
    dcDiskScanner: TdcDiskScanner;
    StartFolderBrowser: TdcBrowseDialog;
    dcSystemImageList1: TdcSystemImageList;
    dcMultiDiskScanner: TdcMultiDiskScanner;
    dcBrowseDialog: TdcBrowseDialog;
    dcOpenDialog: TdcOpenDialog;
    dcOpenFileDialog: TdcOpenDialog;
    dcOpenShortcutDialog: TdcOpenDialog;
    dcSaveShortcutDialog: TdcSaveDialog;
    dcFileInfo: TdcFileInfo;
    dcShellProperties: TdcShellProperties;
    dcShellLink: TdcShellLink;
    dcFileAssociation1: TdcFileAssociation;
    dcFileCRC1: TdcFileCRC;
    dcShellIcon: TdcShellIcon;
    Animate1: TAnimate;
    dcDiskInfo1: TdcDiskInfo;
    dcFolderMonitor1: TdcFolderMonitor;
    ShowFileExtensionsBox: TCheckBox;
    ShowFoldersBox: TCheckBox;
    SizeBox: TCheckBox;
    TypeBox: TCheckBox;
    Label36: TLabel;
    MaskComboBox: TComboBox;
    ModifiedBox: TCheckBox;
    AttributesBox: TCheckBox;
    PopupMenu1: TPopupMenu;
    Refresh1: TMenuItem;
    N1: TMenuItem;
    CreateFolder1: TMenuItem;
    Folder1: TMenuItem;
    Shortcut1: TMenuItem;
    N2: TMenuItem;
    Properties1: TMenuItem;
    N3: TMenuItem;
    View1: TMenuItem;
    LargeIcons1: TMenuItem;
    SmallIcons1: TMenuItem;
    List1: TMenuItem;
    Report1: TMenuItem;
    ArrangeIcons1: TMenuItem;
    byName1: TMenuItem;
    byType1: TMenuItem;
    bySize1: TMenuItem;
    byDate1: TMenuItem;
    N4: TMenuItem;
    Ascending1: TMenuItem;
    Descending1: TMenuItem;
    dcFolderListView1: TdcFolderListView;
    FindAllFoldersCheck: TCheckBox;
    procedure FormShow(Sender: TObject);
    procedure AnySizeCheckClick(Sender: TObject);
    procedure AnyTimeCheckClick(Sender: TObject);
    procedure NormalCheckClick(Sender: TObject);
    procedure AnyCheckClick(Sender: TObject);
    procedure DiskScannerSearchClick(Sender: TObject);
    procedure DiskScannerStopClick(Sender: TObject);
    procedure UnlimitedCheck1Click(Sender: TObject);
    procedure UnlimitedCheck2Click(Sender: TObject);
    procedure dcDiskScannerFileFound(Sender: TObject; FileName,
      FileType: String; FileSize: Extended; FileTime: TDateTime;
      FileAttributes: TdcScanAttributes;
      LargeIcon, SmallIcon: TIcon; SysImageIndex: Integer;
      TotalFiles: Integer; TotalSize: Extended);
    procedure dcDiskScannerScanFolder(Sender: TObject; Folder: String);
    procedure dcDiskScannerScanDone(Sender: TObject; TotalFiles: Integer;
      TotalSize: Extended; ElapsedTimeInSeconds: Integer);
    procedure FormResize(Sender: TObject);
    procedure Add1Click(Sender: TObject);
    procedure Delete1Click(Sender: TObject);
    procedure Add2Click(Sender: TObject);
    procedure Delete2Click(Sender: TObject);
    procedure MultiDiskScannerSearchClick(Sender: TObject);
    procedure MultiDiskScannerStopClick(Sender: TObject);
    procedure dcMultiDiskScannerFileFound(Sender: TObject; FileName,
      FileType: String; FileSize: Extended; FileTime: TDateTime;
      FileAttributes: TdcScanAttributes;
      LargeIcon, SmallIcon: TIcon; SysImageIndex: Integer;
      TotalFiles: Integer; TotalSize: Extended);
    procedure dcMultiDiskScannerScanFolder(Sender: TObject; Folder: String);
    procedure dcMultiDiskScannerScanDone(Sender: TObject;
      TotalFiles: Integer; TotalSize: Extended;
      ElapsedTimeInSeconds: Integer);
    procedure dcMultiDiskScannerExcludingBegin(Sender: TObject);
    procedure dcMultiDiskScannerExcludingEnd(Sender: TObject);
    procedure IncludeListChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure ExcludeListChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure GetFileInfoBtnClick(Sender: TObject);
    procedure DiskBrowserBtnClick(Sender: TObject);
    procedure DiskScannerResultsDblClick(Sender: TObject);
    procedure DiskScannerResultsMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure GetDiskInfoClick(Sender: TObject);
    procedure GetBtnClick(Sender: TObject);
    procedure InstallTestExtensionBtnClick(Sender: TObject);
    procedure UninstallTestExtensionBtnClick(Sender: TObject);
    procedure GetShellIconBtnClick(Sender: TObject);
    procedure DereferenceBoxClick(Sender: TObject);
    procedure LinkBoxClick(Sender: TObject);
    procedure OpenBoxClick(Sender: TObject);
    procedure SelectedBoxClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure GetShortcutInfoBtnClick(Sender: TObject);
    procedure SaveShellLinkBtnClick(Sender: TObject);
    procedure CRCMethodComboChange(Sender: TObject);
    procedure DiskScannerSuspendedClick(Sender: TObject);
    procedure MultiDiskScannerSuspendedClick(Sender: TObject);
    procedure StartFolderExit(Sender: TObject);
    procedure ShObjectEditDlgOk(Sender: TObject);
    procedure CRCFilenameEditDlgOk(Sender: TObject);
    procedure dcFolderEdit1DlgOk(Sender: TObject);
    procedure ViewStyleComboBoxChange(Sender: TObject);
    procedure dcMultiDiskScannerFolderNotExist(Sender: TObject;
      Folder: String);
    procedure dcFolderListView1FolderChanged(Sender: TObject;
      Folder: String);
    procedure UpBtnClick(Sender: TObject);
    procedure dcFolderListView1BeginUpdate(Sender: TObject);
    procedure dcFolderListView1EndUpdate(Sender: TObject);
    procedure dcFolderMonitor1Change(Sender: TObject);
    procedure ShowFileExtensionsBoxClick(Sender: TObject);
    procedure ShowFoldersBoxClick(Sender: TObject);
    procedure SizeBoxClick(Sender: TObject);
    procedure TypeBoxClick(Sender: TObject);
    procedure MaskComboBoxChange(Sender: TObject);
    procedure ModifiedBoxClick(Sender: TObject);
    procedure AttributesBoxClick(Sender: TObject);
    procedure Refresh1Click(Sender: TObject);
    procedure Folder1Click(Sender: TObject);
    procedure Shortcut1Click(Sender: TObject);
    procedure Properties1Click(Sender: TObject);
    procedure dcFolderListView1ColumnClick(Sender: TObject;
      Column: TListColumn);
    procedure byName1Click(Sender: TObject);
  private
    Excluding: Boolean;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
{$R Roger.res}

uses AddPath, dcUtils;

procedure TForm1.FormShow(Sender: TObject);
begin
  TillDate.Date := Now;

  BrowseForCombo.ItemIndex := 0;
  SpecLocation.ItemIndex := 0;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  StatusBar.Panels[0].Width := Width - StatusBar.Panels[1].Width - StatusBar.Panels[2].Width;

  IncludeList.Columns[0].Width := IncludeList.Width - 5;
  ExcludeList.Columns[0].Width := ExcludeList.Width - 5;
end;

procedure TForm1.AnySizeCheckClick(Sender: TObject);
begin
  Label5.Enabled := not AnySizeCheck.Checked;
  AtLeastSpin.Enabled := not AnySizeCheck.Checked;
  Label6.Enabled := not AnySizeCheck.Checked;
  AtMostSpin.Enabled := not AnySizeCheck.Checked;
  Label7.Enabled := not AnySizeCheck.Checked;
end;

procedure TForm1.AnyTimeCheckClick(Sender: TObject);
begin
  CreatedRadio.Enabled := not AnyTimeCheck.Checked;
  ModifiedRadio.Enabled := not AnyTimeCheck.Checked;
  Label8.Enabled := not AnyTimeCheck.Checked;
  SinceDate.Enabled := not AnyTimeCheck.Checked;
  Label9.Enabled := not AnyTimeCheck.Checked;
  TillDate.Enabled := not AnyTimeCheck.Checked;
end;

procedure TForm1.NormalCheckClick(Sender: TObject);
begin
  with dcDiskScanner do
   begin
    SearchAttributes := [];
    if NormalCheck.Checked then
      SearchAttributes := SearchAttributes + [saNormal]
    else
      AnyCheck.Checked := False;
    if ArchiveCheck.Checked then
      SearchAttributes := SearchAttributes + [saArchive]
    else
      AnyCheck.Checked := False;
    if ReadOnlyCheck.Checked then
      SearchAttributes := SearchAttributes + [saReadOnly]
    else
      AnyCheck.Checked := False;
    if HiddenCheck.Checked then
      SearchAttributes := SearchAttributes + [saHidden]
    else
      AnyCheck.Checked := False;
    if SystemCheck.Checked then
      SearchAttributes := SearchAttributes + [saSystem]
    else
      AnyCheck.Checked := False;
    if DirectoryCheck.Checked then
      SearchAttributes := SearchAttributes + [saDirectory]
    else
      AnyCheck.Checked := False;
    if AnyCheck.Checked then
      SearchAttributes := SearchAttributes + [saAny];

    NormalCheck.Checked := (saNormal in SearchAttributes);
    ArchiveCheck.Checked := (saArchive in SearchAttributes);
    ReadOnlyCheck.Checked := (saReadOnly in SearchAttributes);
    HiddenCheck.Checked := (saHidden in SearchAttributes);
    SystemCheck.Checked := (saSystem in SearchAttributes);
    DirectoryCheck.Checked := (saDirectory in SearchAttributes);
    AnyCheck.Checked := (saAny in SearchAttributes);
   end;
end;

⌨️ 快捷键说明

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