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

📄 main.pas

📁 该程序用D5编译
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{*******************************************************************************
* LAN Explorer 1.5 Copyright 2001-2003 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;

type
  TMainForm = class(TForm)
    CoolBar1: TCoolBar;
    MainMenu: TMainMenu;
    MenuTools: TMenuItem;
    MenuAbout: TMenuItem;
    StatusBar: TStatusBar;
    ImageList1: TImageList;
    ListViewPopupMenu: TPopupMenu;
    N_Open: TMenuItem;
    N_Copy: TMenuItem;
    N_Size: TMenuItem;
    N_OpenWithNotpad: TMenuItem;
    N1: TMenuItem;
    N_Refresh: TMenuItem;
    N_Favorite: TMenuItem;
    N_NewWin: 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_SelectAll: 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_Paste: TMenuItem;
    N_Delete: TMenuItem;
    N4: TMenuItem;
    HistoryTabSheet: TTabSheet;
    HistoryTree: TTreeView;
    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;
    Panel6: TPanel;
    cbSaveHistory: TCheckBox;
    cbSaveOpt: TCheckBox;
    ToolBtnHostIP: TToolButton;
    N_Sort_Name: TMenuItem;
    N2: TMenuItem;
    N_View_List: TMenuItem;
    N_View_SmallIcon: TMenuItem;
    N_View: TMenuItem;
    N_Sort: TMenuItem;
    btnSetAddr: TButton;
    btnAddrUp: TSpeedButton;
    btnAddrDown: TSpeedButton;
    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 ListViewPopupMenuPopup(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 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;

  public
    { Public declarations }
    bNotAutoSaveNbt: boolean;
    CurDirName,CurGroupName:string;
    CurListView: TListView;
    StrListAll,StrListSearch,StrListMp3,StrListMovie:TStringList;
    CurDirItem: TListItem;
    procedure CheckFile(FileName,MyDir,MyGroup:string;ImageIndex: 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);

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

type
  PListItem = ^TMyListItem;
  TMyListItem = record
   //dirName,group: string;
   index,count: integer;
   PrevDirItem, NextDirItem, UpDirItem: TListItem;
end;

type
  PFileItem = ^TMyFileItem;
  TMyFileItem = record
  ftype:FileType;
  size: integer;
end;

type
  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;

  ScanPort_IP1, ScanPort_IP2    : string;
  Ping_IP1, Ping_IP2            : string;
  Nbt_IP1, Nbt_IP2              : string;

  CopyFileList: TStringList;

implementation
uses GetDomainThreadUnit,SearchGroupThreadUnit,SearchHostThreadUnit,
     SearchDirThreadunit,ConFig,CopyTo,Tools,About,ItemProp,
     SearchHosts;
{$R *.DFM}

function GetImgIndex(s:string):integer;
var
  //i:integer;
  extn:string;
begin
  result:=1;
  extn:=lowercase(ExtractFileExt(s));
  if (extn='.txt')or(extn='.log') then result:= 48 else
  if extn='.bmp' then result:= 49 else
  if (extn='.exe')or(extn='.com') then result:= 74 else
  if (extn='.htm')or(extn='.html')or(extn='.shtml')or(extn='.plg') then result:= 53 else
  if (extn='.jpg')or(extn='.jpeg') then result:= 55 else
  if extn='.pdf' then result:= 57 else
  if extn='.ppt' then result:= 58 else
  if (extn='.dll')or(extn='.sys') then result:= 59 else
  if (extn='.doc')or(extn='.rtf') then result:= 61 else
  if (extn='.zip')or(extn='.gz')or(extn='.tar')or(extn='.z')or(extn='.tgz') then result:= 62 else
  if (extn='.rar')or(extn='.iso')or(extn='.cab') then result:= 66 else
  if (extn='.mp3')or(extn='.wsz')or(extn='.wma')or(extn='.m3u') then result:= 35 else
  if (extn='.mpg')or(extn='.mpeg')or(extn='.avi')or(extn='.asx') then result:= 78 else
  if (extn='.rm')or(extn='.rmvb')or(extn='.ram')or(extn='.ra') then result:= 79 else
  if (extn='.dsw')or(extn='.dsp') then result:= 67 else
  if extn='.chm' then result:= 68 else
  if extn='.ps' then result:= 63 else
  if extn='.hlp' then result:= 65 else
  if extn='.bat' then result:= 60 else
  if (extn='.ini')or(extn='.inf') then result:= 54 else
  if extn='.c' then result:= 69 else
  if extn='.gif' then result:= 70 else
  if extn='.h' then result:= 71 else
  if extn='.dpr' then result:= 72 else
  if extn='.cpp' then result:= 50 else
  if extn='.dcu' then result:= 51 else
  if extn='.pas' then result:= 56 else
  if (extn='.obj')or(extn='.ilk')or(extn='.pch')or(extn='.pdb')or(extn='.idb') then result:= 73 else
  if extn='.mid' then result:= 75 else
  if extn='.wav' then result:= 76 else
  if extn='.m' then result:= 64 else
  if (extn='.wmv')or(extn='.asf') then result:= 80 else
  if extn='.swf' then result:= 81 else
  if extn='.mht' then result:= 82 else
  if extn='.sch' then result:= 83 else
  if extn='.pcb' then result:= 84 else
  if extn='.ddb' then result:= 85 else
  if extn='.prj' then result:= 86 else
  if extn='.pps' then result:= 87 else
  if extn='.xml' then result:= 88 else
  if extn='.dsn' then result:= 89 else
  if extn='.pot' then result:= 90 else

⌨️ 快捷键说明

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