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

📄 main.pas

📁 最好的局域网搜索软件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{*******************************************************************************
* LAN Explorer 1.6 Copyright 2001-2005 zhuwei, all rights reserved.
* e-mail:zw84611@sina.com
*******************************************************************************}
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ToolWin, ComCtrls, ExtCtrls, Menus, StdCtrls, Tabs, ImgList,Inifiles,
  Buttons,ShlObj,MultiSearchThreadUnit,ShellApi,CommCtrl, ClipBrd, Spin,
  FmxUtils{, TrayIcon}, WinSock, WinInet, ComObj, FileCtrl;

type
  TMainForm = class(TForm)
    CoolBar1: TCoolBar;
    MainMenu: TMainMenu;
    MenuTools: TMenuItem;
    MenuAbout: TMenuItem;
    StatusBar: TStatusBar;
    ImageList1: TImageList;
    pmListItem: TPopupMenu;
    N_Open: TMenuItem;
    N_Copy: TMenuItem;
    N_Size: TMenuItem;
    N_OpenWithNotpad: TMenuItem;
    ClientPanel: TPanel;
    N_CopyTo: TMenuItem;
    BottomPopupMenu: TPopupMenu;
    N_SaveAll: TMenuItem;
    SaveDlg: TSaveDialog;
    MenuView: TMenuItem;
    Menu_Tree: TMenuItem;
    Menu_Result: TMenuItem;
    Menu_About: TMenuItem;
    N_BottomOpen: TMenuItem;
    N_BottomCopy: TMenuItem;
    N_BottomCopyTo: TMenuItem;
    N_BottomFileSize: TMenuItem;
    N_Property: TMenuItem;
    Splitter1: TSplitter;
    CliePanel: TPanel;
    ClientPageCtrl: TPageControl;
    ShareTabSheet: TTabSheet;
    BrowseListView: TListView;
    LanTreePopupMenu: TPopupMenu;
    N_LanTreeRefresh: TMenuItem;
    N_SaveFavo: TMenuItem;
    N_FindIP: TMenuItem;
    Menu_IPForm: TMenuItem;
    N3: TMenuItem;
    N_Del: TMenuItem;
    N_Begin_Search_With: TMenuItem;
    ToolBar1: TToolBar;
    ToolBtnConfig: TToolButton;
    Menu_Help: TMenuItem;
    Splitter2: TSplitter;
    BottomPanel: TPanel;
    BottomPageCtrl: TPageControl;
    AllFileTabSheet: TTabSheet;
    FindTabSheet: TTabSheet;
    FindListView: TListView;
    Mp3TabSheet: TTabSheet;
    Mp3ListView: TListView;
    MovieTabSheet: TTabSheet;
    MovieListView: TListView;
    LeftPanel: TPanel;
    LeftPageCtrl: TPageControl;
    SearchTabSheet: TTabSheet;
    FavoTabSheet: TTabSheet;
    FavoTree: TTreeView;
    SearchHostTabSheet: TTabSheet;
    Panel1: TPanel;
    STPanel: TPanel;
    Label1: TLabel;
    BtnFind: TSpeedButton;
    Edit1: TEdit;
    ChoiceRadio: TRadioGroup;
    FindTree: TTreeView;
    pnlHeader: TPanel;
    N_BottomOpenDir: TMenuItem;
    N_Delete: TMenuItem;
    N4: TMenuItem;
    HistoryTabSheet: TTabSheet;
    N_Clear: TMenuItem;
    N_Sys: TMenuItem;
    Menu_Find: TMenuItem;
    Menu_Dos: TMenuItem;
    N_SaveTree: TMenuItem;
    MenuSearch: TMenuItem;
    Menu_Search_Config: TMenuItem;
    Splitter3: TSplitter;
    AllListBox: TListBox;
    ShareListView: TListView;
    Menu_Nbtstat: TMenuItem;
    ToolBtnNbt: TToolButton;
    SearchPageCtrl: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    ToolBtnScanPort: TToolButton;
    Menu_ScanPort: TMenuItem;
    Menu_Ping: TMenuItem;
    ToolBtnPing: TToolButton;
    Panel3: TPanel;
    IpTree: TTreeView;
    Panel2: TPanel;
    edtIP1: TEdit;
    edtIP2: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    ToolButton1: TToolButton;
    Panel4: TPanel;
    SearchTree: TTreeView;
    Panel5: TPanel;
    cbBegin: TComboBox;
    cbEnd: TComboBox;
    Label4: TLabel;
    Label5: TLabel;
    ToolBar4: TToolBar;
    ToolBtnSearcIP: TToolButton;
    btnIP: TToolButton;
    ToolBtnSendMsg: TToolButton;
    Menu_SendMsg: TMenuItem;
    N_SendMsg: TMenuItem;
    Menu_NbtHistory: TMenuItem;
    Splitter4: TSplitter;
    Splitter5: TSplitter;
    Splitter6: TSplitter;
    ToolBar3: TToolBar;
    ToolBtnRefresh: TToolButton;
    ToolBtnAuto: TToolButton;
    ToolPanel: TPanel;
    IconCheckBox: TCheckBox;
    MenuCheckBox: TCheckBox;
    ToolBtnBack: TToolButton;
    ToolBtnNext: TToolButton;
    ToolButton2: TToolButton;
    ToolBtnUp: TToolButton;
    cbScanMode: TComboBox;
    Label6: TLabel;
    cbNewRoot: TCheckBox;
    ToolBtnIpHelp: TToolButton;
    ToolBtnHostIP: TToolButton;
    btnSetAddr: TButton;
    btnAddrUp: TSpeedButton;
    btnAddrDown: TSpeedButton;
    Menu_CopyForm: TMenuItem;
    ToolBtnSave: TToolButton;
    N_SaveRange: TMenuItem;
    Panel7: TPanel;
    Label7: TLabel;
    cbShare: TCheckBox;
    cbFtp: TCheckBox;
    cbHttp: TCheckBox;
    pmViewBakGrd: TPopupMenu;
    N_Paste: TMenuItem;
    N_SelectAll: TMenuItem;
    N_Refresh: TMenuItem;
    N_Favorite: TMenuItem;
    N_NewWin: TMenuItem;
    MenuItem16: TMenuItem;
    N_View: TMenuItem;
    N_View_SmallICon: TMenuItem;
    N_View_List: TMenuItem;
    N_Sort: TMenuItem;
    N_Sort_Name: TMenuItem;
    N_sort_type: TMenuItem;
    N_CuteFtp: TMenuItem;
    N_ViewReport: TMenuItem;
    N_sort_size: TMenuItem;
    Panel8: TPanel;
    HistoryTree: TTreeView;
    Panel6: TPanel;
    Label8: TLabel;
    Label9: TLabel;
    cbSaveHistory: TCheckBox;
    cbSaveOpt: TCheckBox;
    seHistoryCount: TSpinEdit;
    Splitter7: TSplitter;
    procedure FormCreate(Sender: TObject);
    //procedure BottomDockPanelEndDock(Sender, Target: TObject; X, Y: Integer);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ShareListViewClick(Sender: TObject);
    procedure ShareListViewSelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure ClientPageCtrlChange(Sender: TObject);
    procedure N_OpenClick(Sender: TObject);
    procedure N_CopyClick(Sender: TObject);
    procedure pmListItemPopup(Sender: TObject);
    procedure N_SizeClick(Sender: TObject);
    procedure N_OpenWithNotpadClick(Sender: TObject);
    procedure N_NewWinClick(Sender: TObject);
    procedure N_FavoriteClick(Sender: TObject);
    procedure SearchTreeClick(Sender: TObject);
    procedure FavoTreeClick(Sender: TObject);
    procedure N_RefreshClick(Sender: TObject);
    procedure N_CopyToClick(Sender: TObject);
    procedure N_SaveAllClick(Sender: TObject);
    procedure Menu_TreeClick(Sender: TObject);
    procedure Menu_ResultClick(Sender: TObject);
    procedure Menu_AboutClick(Sender: TObject);
    procedure IconCheckBoxClick(Sender: TObject);
    procedure AllListBoxDblClick(Sender: TObject);
    procedure FindListViewDblClick(Sender: TObject);
    procedure Mp3ListViewDblClick(Sender: TObject);
    procedure MovieListViewDblClick(Sender: TObject);
    procedure N_BottomOpenClick(Sender: TObject);
    procedure N_BottomCopyClick(Sender: TObject);
    procedure BottomPopupMenuPopup(Sender: TObject);
    procedure N_BottomFileSizeClick(Sender: TObject);
    procedure N_BottomCopyToClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure N_PropertyClick(Sender: TObject);
    procedure LanTreePopupMenuPopup(Sender: TObject);
    procedure N_LanTreeRefreshClick(Sender: TObject);
    procedure N_SaveFavoClick(Sender: TObject);
    procedure N_FindIPClick(Sender: TObject);
    procedure Menu_IPFormClick(Sender: TObject);
    procedure BtnFindClick(Sender: TObject);
    procedure ChoiceRadioClick(Sender: TObject);
    procedure LeftPageCtrlChange(Sender: TObject);
    procedure FindTreeClick(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure N_DelClick(Sender: TObject);
    procedure N_SelectAllClick(Sender: TObject);
    procedure N_Begin_Search_WithClick(Sender: TObject);
    procedure ToolBtnConfigClick(Sender: TObject);
    procedure Menu_HelpClick(Sender: TObject);
    procedure N_BottomOpenDirClick(Sender: TObject);
    procedure N_PasteClick(Sender: TObject);
    procedure N_DeleteClick(Sender: TObject);
    procedure HistoryTreeClick(Sender: TObject);
    procedure N_ClearClick(Sender: TObject);
    procedure N_SysClick(Sender: TObject);
    procedure Menu_FindClick(Sender: TObject);
    procedure Menu_DosClick(Sender: TObject);
    procedure N_SaveTreeClick(Sender: TObject);
    procedure Menu_Search_ConfigClick(Sender: TObject);
    procedure ShareListViewResize(Sender: TObject);
    procedure BrowseListViewMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure MenuCheckBoxClick(Sender: TObject);
    procedure Menu_NbtstatClick(Sender: TObject);
    procedure ToolBtnNbtClick(Sender: TObject);
    procedure IpTreeClick(Sender: TObject);
    procedure Menu_ScanPortClick(Sender: TObject);
    procedure ToolBtnScanPortClick(Sender: TObject);
    procedure Menu_PingClick(Sender: TObject);
    procedure ToolBtnPingClick(Sender: TObject);
    procedure ToolBtnRefreshClick(Sender: TObject);
    procedure ToolBtnAutoClick(Sender: TObject);
    procedure btnIPClick(Sender: TObject);
    procedure ToolBtnSearcIPClick(Sender: TObject);
    procedure Menu_SendMsgClick(Sender: TObject);
    procedure ToolBtnSendMsgClick(Sender: TObject);
    procedure N_SendMsgClick(Sender: TObject);
    procedure Menu_NbtHistoryClick(Sender: TObject);
    procedure ToolBtnBackClick(Sender: TObject);
    procedure ToolBtnNextClick(Sender: TObject);
    procedure ToolBtnUpClick(Sender: TObject);
    procedure ToolBtnIpHelpClick(Sender: TObject);
    procedure ToolBtnHostIPClick(Sender: TObject);
    procedure N_Sort_NameClick(Sender: TObject);
    procedure N_View_ListClick(Sender: TObject);
    procedure N_View_SmallIconClick(Sender: TObject);
    procedure btnSetAddrClick(Sender: TObject);
    procedure btnAddrUpClick(Sender: TObject);
    procedure btnAddrDownClick(Sender: TObject);
    procedure Menu_CopyFormClick(Sender: TObject);
    procedure ToolBtnSaveClick(Sender: TObject);
    procedure N_SaveRangeClick(Sender: TObject);
    procedure N_sort_typeClick(Sender: TObject);
    procedure cbFtpClick(Sender: TObject);
    procedure cbHttpClick(Sender: TObject);
    procedure pmViewBakGrdPopup(Sender: TObject);
    procedure N_CuteFtpClick(Sender: TObject);
    procedure N_ViewReportClick(Sender: TObject);
    procedure N_sort_sizeClick(Sender: TObject);
    procedure pnlHeaderDblClick(Sender: TObject);
    //procedure ToolBtnSeachIPClick(Sender: TObject);
  private
    { Private declarations }
    ini: Tinifile;
    //f: TextFile;
    TabSheetX: TTabSheet;
    CurRlistItem: TListItem;
    TemTreeNode:TTreeNode;
    CurBottomListView:TListView;
    FileList: TStringList;
    CurTree:TTreeView;

    FOriginalPageControlWndProc1: TWndMethod;
    FOriginalPageControlWndProc3: TWndMethod;
    FOriginalPageControlWndProc4: TWndMethod;

    FOriginalPageControlWndProc5: TWndMethod;

    //TrayIcon: TTrayIcon;

    IsDoPrevNext: boolean;

    procedure OpenIni;
    procedure SaveIni;
    procedure OpenFavorite;
    procedure SaveFavorite;
    procedure MyListViewClick(Sender: TObject);
    procedure MyBottomListViewClick(ListView:TListView);
    procedure LanTreeClick(LanTree:TTreeView);

    procedure PageControlWndProc1(var Message: TMessage);
    procedure PageControlWndProc3(var Message: TMessage);
    procedure PageControlWndProc4(var Message: TMessage);

    procedure PageControlWndProc5(var Message: TMessage);

    procedure DisposeLanTree(DTree:TTreeView);
    procedure DisposeListView;
    procedure DisposeTabData;
    procedure DisposeRightList(LV: TListView);

    procedure OpenHistory;
    procedure SaveHistory;

    procedure ChangeBtnStatus;

    procedure SaveSearuchResult(LV: TListView; FileName: string);

  public
    { Public declarations }
    bNotAutoSaveNbt: boolean;
    CurDirName, CurGroupName:string;
    CurFtpDir, CurFtpSvr: string;
    //CurFtpHandle: HINTERNET;
    CurListView: TListView;
    StrListAll{, StrListSearch, StrListMp3, StrListMovie}: TStringList;
    SizeListAll: TStringList;
    CurDirItem: TListItem;
    IsFtp: boolean;
    procedure CheckFile(FileName, MyDir, MyGroup: string; ImageIndex, FileSize: integer);
    procedure AddCap(group: string; dir: string);
    function GroupFunc(s: string): string;
    procedure ShowToolsForm(index: integer);

  end;

{type} FileType = (IsFile, IsDir);
{type} OwnerType = (InTreeView, InListView);

  PMyTreeItem = ^TMyTreeItem;
  TMyTreeItem = record
    DirName, Group: string;
    TabIndex: integer;
    MyClientListView: TListView;
    MyRightListItem: TListItem;
  end;

  PFtpNodeType = ^TFtpNodeType;
  TFtpNodeType = record
    FtpHandle: HINTERNET;
    TabIndex: integer;
    MyDir: string;
    FtpSvr: string;
    MyClientListView: TListView;
    MyRightListItem: TListItem;
    DisplayDir: string; 
  end;

  PListItem = ^TMyListItem;
  TMyListItem = record  // RListItem
   //dirName,group: string;
   index, count: integer;
   PrevDirItem, NextDirItem, UpDirItem: TListItem;
   FtpHandle: HINTERNET;
   FtpDir: string; // root dir may be not '/' /// 05.11.2
  end;

  PFileItem = ^TMyFileItem;
  TMyFileItem = record
    ftype: FileType;
    size: DWORD;
  end;

  pTabData = ^TMyTabData;
  TMyTabData=record
    MyGroup, MyDir:string;
    MyRListItem: TListItem;
  end;

  TExecuteThread=class(TThread)
  public
    ExeFile, ExeDir:string;
  protected
    procedure Execute; override;
   //Procedure Adddir;
  end;
 
function GetImgIndex(s:string):integer;

var
  MainForm      : TMainForm;

  AppDir        : String;
  GroupList     : array[0..500]of string;
  GroupNum,SearchBeginNum,SearchCount,FinishNum,ThreadNum: integer;
  CanOpen       : Boolean;
  //MyItemPtr     : PMyTreeItem;
  //ListItemPtr   : PListItem;
  //TabDataPtr    : pTabData;
  //fPtr          : pFileItem;
  recursive,stop,bAutoSearch,bSysIcon,bNT: boolean;

  OS    : OSType;
  bk    : TBitmap;

⌨️ 快捷键说明

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