看到一个使用EverythingSDK的文章:

https://www.cnblogs.com/masg/p/16251099.html

但博主没有发Everything.pas单元,我根据Everything.h转了一个,可以用。

unit Everything;

interface

uses
  Windows;

const
  EVERYTHING_OK = 0; {// no error detected}
  EVERYTHING_ERROR_MEMORY = 1; {// out of memory.}
  EVERYTHING_ERROR_IPC = 2; {// Everything search client is not running}
  EVERYTHING_ERROR_REGISTERCLASSEX = 3; {// unable to register window class.}
  EVERYTHING_ERROR_CREATEWINDOW = 4; {// unable to create listening window}
  EVERYTHING_ERROR_CREATETHREAD = 5; {// unable to create listening thread}
  EVERYTHING_ERROR_INVALIDINDEX = 6; {// invalid index}
  EVERYTHING_ERROR_INVALIDCALL = 7; {// invalid call}
  EVERYTHING_ERROR_INVALIDREQUEST = 8; {// invalid request data, request data first.}
  EVERYTHING_ERROR_INVALIDPARAMETER = 9; {// bad parameter.}
  EVERYTHING_SORT_NAME_ASCENDING = 1;
  EVERYTHING_SORT_NAME_DESCENDING = 2;
  EVERYTHING_SORT_PATH_ASCENDING = 3;
  EVERYTHING_SORT_PATH_DESCENDING = 4;
  EVERYTHING_SORT_SIZE_ASCENDING = 5;
  EVERYTHING_SORT_SIZE_DESCENDING = 6;
  EVERYTHING_SORT_EXTENSION_ASCENDING = 7;
  EVERYTHING_SORT_EXTENSION_DESCENDING = 8;
  EVERYTHING_SORT_TYPE_NAME_ASCENDING = 9;
  EVERYTHING_SORT_TYPE_NAME_DESCENDING = 10;
  EVERYTHING_SORT_DATE_CREATED_ASCENDING = 11;
  EVERYTHING_SORT_DATE_CREATED_DESCENDING = 12;
  EVERYTHING_SORT_DATE_MODIFIED_ASCENDING = 13;
  EVERYTHING_SORT_DATE_MODIFIED_DESCENDING = 14;
  EVERYTHING_SORT_ATTRIBUTES_ASCENDING = 15;
  EVERYTHING_SORT_ATTRIBUTES_DESCENDING = 16;
  EVERYTHING_SORT_FILE_LIST_FILENAME_ASCENDING = 17;
  EVERYTHING_SORT_FILE_LIST_FILENAME_DESCENDING = 18;
  EVERYTHING_SORT_RUN_COUNT_ASCENDING = 19;
  EVERYTHING_SORT_RUN_COUNT_DESCENDING = 20;
  EVERYTHING_SORT_DATE_RECENTLY_CHANGED_ASCENDING = 21;
  EVERYTHING_SORT_DATE_RECENTLY_CHANGED_DESCENDING = 22;
  EVERYTHING_SORT_DATE_ACCESSED_ASCENDING = 23;
  EVERYTHING_SORT_DATE_ACCESSED_DESCENDING = 24;
  EVERYTHING_SORT_DATE_RUN_ASCENDING = 25;
  EVERYTHING_SORT_DATE_RUN_DESCENDING = 26;
  EVERYTHING_REQUEST_FILE_NAME = $00000001;
  EVERYTHING_REQUEST_PATH = $00000002;
  EVERYTHING_REQUEST_FULL_PATH_AND_FILE_NAME = $00000004;
  EVERYTHING_REQUEST_EXTENSION = $00000008;
  EVERYTHING_REQUEST_SIZE = $00000010;
  EVERYTHING_REQUEST_DATE_CREATED = $00000020;
  EVERYTHING_REQUEST_DATE_MODIFIED = $00000040;
  EVERYTHING_REQUEST_DATE_ACCESSED = $00000080;
  EVERYTHING_REQUEST_ATTRIBUTES = $00000100;
  EVERYTHING_REQUEST_FILE_LIST_FILE_NAME = $00000200;
  EVERYTHING_REQUEST_RUN_COUNT = $00000400;
  EVERYTHING_REQUEST_DATE_RUN = $00000800;
  EVERYTHING_REQUEST_DATE_RECENTLY_CHANGED = $00001000;
  EVERYTHING_REQUEST_HIGHLIGHTED_FILE_NAME = $00002000;
  EVERYTHING_REQUEST_HIGHLIGHTED_PATH = $00004000;
  EVERYTHING_REQUEST_HIGHLIGHTED_FULL_PATH_AND_FILE_NAME = $00008000;
  EVERYTHING_TARGET_MACHINE_X86 = 1;
  EVERYTHING_TARGET_MACHINE_X64 = 2;
  EVERYTHING_TARGET_MACHINE_ARM = 3;
{/// write search state }

procedure Everything_SetSearchW(lpString: PWIDECHAR) stdcall;

procedure Everything_SetSearchA(lpString: PANSICHAR) stdcall;

procedure Everything_SetMatchPath(bEnable: Bool) stdcall;

procedure Everything_SetMatchCase(bEnable: Bool) stdcall;

procedure Everything_SetMatchWholeWord(bEnable: Bool) stdcall;

procedure Everything_SetRegex(bEnable: Bool) stdcall;

procedure Everything_SetMax(dwMax: LongInt) stdcall;

procedure Everything_SetOffset(dwOffset: LongInt) stdcall;

procedure Everything_SetReplyWindow(hWnd: HWND) stdcall;

procedure Everything_SetReplyID(dwId: LongInt) stdcall;

procedure Everything_SetSort(dwSort: LongInt) stdcall;

procedure Everything_SetRequestFlags(dwRequestFlags: LongInt) stdcall; 
{/// read search state }

function Everything_GetMatchPath: BOOL stdcall;

function Everything_GetMatchCase: BOOL stdcall;

function Everything_GetMatchWholeWord: BOOL stdcall;

function Everything_GetRegex: BOOL stdcall;

function Everything_GetMax: DWORD stdcall;

function Everything_GetOffset: DWORD stdcall;

function Everything_GetSearchA: PANSICHAR stdcall;

function Everything_GetSearchW: PWIDECHAR stdcall;

function Everything_GetLastError: DWORD stdcall;

function Everything_GetReplyWindow: HWND stdcall;

function Everything_GetReplyID: DWORD stdcall;

function Everything_GetSort: DWORD stdcall;

function Everything_GetRequestFlags: DWORD stdcall; 
{/// execute query }

function Everything_QueryA(bWait: Bool): BOOL stdcall;

function Everything_QueryW(bWait: Bool): BOOL stdcall; 
{/// query reply }

function Everything_IsQueryReply(message: Word; wParam: wParam; lParam: lParam; dwId: LongInt): BOOL stdcall;
{/// write result state }

procedure Everything_SortResultsByPath;// stdcall;
{/// read result state }

function Everything_GetNumFileResults: DWORD stdcall;

function Everything_GetNumFolderResults: DWORD stdcall;

function Everything_GetNumResults: DWORD stdcall;

function Everything_GetTotFileResults: DWORD stdcall;

function Everything_GetTotFolderResults: DWORD stdcall;

function Everything_GetTotResults: DWORD stdcall;

function Everything_IsVolumeResult(dwIndex: LongInt): BOOL stdcall;

function Everything_IsFolderResult(dwIndex: LongInt): BOOL stdcall;

function Everything_IsFileResult(dwIndex: LongInt): BOOL stdcall;

function Everything_GetResultFileNameW(dwIndex: LongInt): PWIDECHAR stdcall;

function Everything_GetResultFileNameA(dwIndex: LongInt): PANSICHAR stdcall;

function Everything_GetResultPathW(dwIndex: LongInt): PWIDECHAR stdcall;

function Everything_GetResultPathA(dwIndex: LongInt): PANSICHAR stdcall;

function Everything_GetResultFullPathNameA(dwIndex: LongInt; buf: PChar; bufsize: LongInt): DWORD stdcall;

function Everything_GetResultFullPathNameW(dwIndex: LongInt; wbuf: WideChar; wbuf_size_in_wchars: LongInt): DWORD stdcall;

function Everything_GetResultListSort: DWORD stdcall;

function Everything_GetResultListRequestFlags: DWORD stdcall;

function Everything_GetResultExtensionW(dwIndex: LongInt): PWIDECHAR stdcall;

function Everything_GetResultExtensionA(dwIndex: LongInt): PANSICHAR stdcall;

function Everything_GetResultSize(dwIndex: LongInt; lpSize: PINT): BOOL stdcall;

function Everything_GetResultDateCreated(dwIndex: LongInt; lpDateCreated: PFileTime): BOOL stdcall;

function Everything_GetResultDateModified(dwIndex: LongInt; lpDateModified: PFileTime): BOOL stdcall;

function Everything_GetResultDateAccessed(dwIndex: LongInt; lpDateAccessed: PFileTime): BOOL stdcall;

function Everything_GetResultAttributes(dwIndex: LongInt): DWORD stdcall;

function Everything_GetResultFileListFileNameW(dwIndex: LongInt): PWIDECHAR stdcall;

function Everything_GetResultFileListFileNameA(dwIndex: LongInt): PANSICHAR stdcall;

function Everything_GetResultRunCount(dwIndex: LongInt): DWORD stdcall;

function Everything_GetResultDateRun(dwIndex: LongInt; lpDateRun: PFileTime): BOOL stdcall;

function Everything_GetResultDateRecentlyChanged(dwIndex: LongInt; lpDateRecentlyChanged: PFileTime): BOOL stdcall;

function Everything_GetResultHighlightedFileNameW(dwIndex: LongInt): PWIDECHAR stdcall;

function Everything_GetResultHighlightedFileNameA(dwIndex: LongInt): PANSICHAR stdcall;

function Everything_GetResultHighlightedPathW(dwIndex: LongInt): PWIDECHAR stdcall;

function Everything_GetResultHighlightedPathA(dwIndex: LongInt): PANSICHAR stdcall;

function Everything_GetResultHighlightedFullPathAndFileNameW(dwIndex: LongInt): PWIDECHAR stdcall;

function Everything_GetResultHighlightedFullPathAndFileNameA(dwIndex: LongInt): PANSICHAR stdcall;
{/// reset state and free any allocated memory }

procedure Everything_Reset;// stdcall;

procedure Everything_CleanUp;// stdcall;

function Everything_GetMajorVersion: DWORD stdcall;

function Everything_GetMinorVersion: DWORD stdcall;

function Everything_GetRevision: DWORD stdcall;

function Everything_GetBuildNumber: DWORD stdcall;

function Everything_Exit: BOOL stdcall;

function Everything_IsDBLoaded: BOOL stdcall;

function Everything_IsAdmin: BOOL stdcall;

function Everything_IsAppData: BOOL stdcall;

function Everything_RebuildDB: BOOL stdcall;

function Everything_UpdateAllFolderIndexes: BOOL stdcall;

function Everything_SaveDB: BOOL stdcall;

function Everything_SaveRunHistory: BOOL stdcall;

function Everything_DeleteRunHistory: BOOL stdcall;

function Everything_GetTargetMachine: DWORD stdcall;

function Everything_GetRunCountFromFileNameW(var lpFileName: PWIDECHAR): DWORD stdcall;

function Everything_GetRunCountFromFileNameA(var lpFileName: PANSICHAR): DWORD stdcall;

function Everything_SetRunCountFromFileNameW(var lpFileName: PWIDECHAR; dwRunCount: LongInt): BOOL stdcall;

function Everything_SetRunCountFromFileNameA(var lpFileName: PANSICHAR; dwRunCount: LongInt): BOOL stdcall;

function Everything_IncRunCountFromFileNameW(var lpFileName: PWIDECHAR): DWORD stdcall;

function Everything_IncRunCountFromFileNameA(var lpFileName: PANSICHAR): DWORD stdcall; 
//{$IFDEF UNICODE}
//
//const
//  Everything_SetSearch = Everything_SetSearchW;
//  Everything_GetSearch = Everything_GetSearchW;
//  Everything_Query = Everything_QueryW;
//  Everything_Query2 = Everything_Query2W;
//  Everything_GetResultFileName = Everything_GetResultFileNameW;
//  Everything_GetResultPath = Everything_GetResultPathW;
//  Everything_GetResultFullPathName = Everything_GetResultFullPathNameW;
//  Everything_GetResultExtension = Everything_GetResultExtensionW;
//  Everything_GetResultFileListFileName = Everything_GetResultFileListFileNameW;
//  Everything_GetResultHighlightedFileName = Everything_GetResultHighlightedFileNameW;
//  Everything_GetResultHighlightedPath = Everything_GetResultHighlightedPathW;
//  Everything_GetResultHighlightedFullPathAndFileName = Everything_GetResultHighlightedFullPathAndFileNameW;
//  Everything_GetRunCountFromFileName = Everything_GetRunCountFromFileNameW;
//  Everything_SetRunCountFromFileName = Everything_SetRunCountFromFileNameW;
//  Everything_IncRunCountFromFileName = Everything_IncRunCountFromFileNameW;
//{$ELSE}
//
//const
//  Everything_SetSearch = Everything_SetSearchA;
//  Everything_GetSearch = Everything_GetSearchA;
//  Everything_Query = Everything_QueryA;
//  Everything_Query2 = Everything_Query2A;
//  Everything_GetResultFileName = Everything_GetResultFileNameA;
//  Everything_GetResultPath = Everything_GetResultPathA;
//  Everything_GetResultFullPathName = Everything_GetResultFullPathNameA;
//  Everything_GetResultExtension = Everything_GetResultExtensionA;
//  Everything_GetResultFileListFileName = Everything_GetResultFileListFileNameA;
//  Everything_GetResultHighlightedFileName = Everything_GetResultHighlightedFileNameA;
//  Everything_GetResultHighlightedPath = Everything_GetResultHighlightedPathA;
//  Everything_GetResultHighlightedFullPathAndFileName = Everything_GetResultHighlightedFullPathAndFileNameA;
//  Everything_GetRunCountFromFileName = Everything_GetRunCountFromFileNameA;
//  Everything_SetRunCountFromFileName = Everything_SetRunCountFromFileNameA;
//  Everything_IncRunCountFromFileName = Everything_IncRunCountFromFileNameA;
//{$ENDIF}

implementation

procedure Everything_SetSearchW; external 'EVERYTHING.DLL';

procedure Everything_SetSearchA; external 'EVERYTHING.DLL';

procedure Everything_SetMatchPath; external 'EVERYTHING.DLL';

procedure Everything_SetMatchCase; external 'EVERYTHING.DLL';

procedure Everything_SetMatchWholeWord; external 'EVERYTHING.DLL';

procedure Everything_SetRegex; external 'EVERYTHING.DLL';

procedure Everything_SetMax; external 'EVERYTHING.DLL';

procedure Everything_SetOffset; external 'EVERYTHING.DLL';

procedure Everything_SetReplyWindow; external 'EVERYTHING.DLL';

procedure Everything_SetReplyID; external 'EVERYTHING.DLL';

procedure Everything_SetSort; external 'EVERYTHING.DLL';

procedure Everything_SetRequestFlags; external 'EVERYTHING.DLL';

function Everything_GetMatchPath; external 'EVERYTHING.DLL';

function Everything_GetMatchCase; external 'EVERYTHING.DLL';

function Everything_GetMatchWholeWord; external 'EVERYTHING.DLL';

function Everything_GetRegex; external 'EVERYTHING.DLL';

function Everything_GetMax; external 'EVERYTHING.DLL';

function Everything_GetOffset; external 'EVERYTHING.DLL';

function Everything_GetSearchA; external 'EVERYTHING.DLL';

function Everything_GetSearchW; external 'EVERYTHING.DLL';

function Everything_GetLastError; external 'EVERYTHING.DLL';

function Everything_GetReplyWindow; external 'EVERYTHING.DLL';

function Everything_GetReplyID; external 'EVERYTHING.DLL';

function Everything_GetSort; external 'EVERYTHING.DLL';

function Everything_GetRequestFlags; external 'EVERYTHING.DLL';

function Everything_QueryA; external 'EVERYTHING.DLL';

function Everything_QueryW; external 'EVERYTHING.DLL';

function Everything_IsQueryReply; external 'EVERYTHING.DLL';

procedure Everything_SortResultsByPath; external 'EVERYTHING.DLL';

function Everything_GetNumFileResults; external 'EVERYTHING.DLL';

function Everything_GetNumFolderResults; external 'EVERYTHING.DLL';

function Everything_GetNumResults; external 'EVERYTHING.DLL';

function Everything_GetTotFileResults; external 'EVERYTHING.DLL';

function Everything_GetTotFolderResults; external 'EVERYTHING.DLL';

function Everything_GetTotResults; external 'EVERYTHING.DLL';

function Everything_IsVolumeResult; external 'EVERYTHING.DLL';

function Everything_IsFolderResult; external 'EVERYTHING.DLL';

function Everything_IsFileResult; external 'EVERYTHING.DLL';

function Everything_GetResultFileNameW; external 'EVERYTHING.DLL';

function Everything_GetResultFileNameA; external 'EVERYTHING.DLL';

function Everything_GetResultPathW; external 'EVERYTHING.DLL';

function Everything_GetResultPathA; external 'EVERYTHING.DLL';

function Everything_GetResultFullPathNameA; external 'EVERYTHING.DLL';

function Everything_GetResultFullPathNameW; external 'EVERYTHING.DLL';

function Everything_GetResultListSort; external 'EVERYTHING.DLL';

function Everything_GetResultListRequestFlags; external 'EVERYTHING.DLL';

function Everything_GetResultExtensionW; external 'EVERYTHING.DLL';

function Everything_GetResultExtensionA; external 'EVERYTHING.DLL';

function Everything_GetResultSize; external 'EVERYTHING.DLL';

function Everything_GetResultDateCreated; external 'EVERYTHING.DLL';

function Everything_GetResultDateModified; external 'EVERYTHING.DLL';

function Everything_GetResultDateAccessed; external 'EVERYTHING.DLL';

function Everything_GetResultAttributes; external 'EVERYTHING.DLL';

function Everything_GetResultFileListFileNameW; external 'EVERYTHING.DLL';

function Everything_GetResultFileListFileNameA; external 'EVERYTHING.DLL';

function Everything_GetResultRunCount; external 'EVERYTHING.DLL';

function Everything_GetResultDateRun; external 'EVERYTHING.DLL';

function Everything_GetResultDateRecentlyChanged; external 'EVERYTHING.DLL';

function Everything_GetResultHighlightedFileNameW; external 'EVERYTHING.DLL';

function Everything_GetResultHighlightedFileNameA; external 'EVERYTHING.DLL';

function Everything_GetResultHighlightedPathW; external 'EVERYTHING.DLL';

function Everything_GetResultHighlightedPathA; external 'EVERYTHING.DLL';

function Everything_GetResultHighlightedFullPathAndFileNameW; external 'EVERYTHING.DLL';

function Everything_GetResultHighlightedFullPathAndFileNameA; external 'EVERYTHING.DLL';

procedure Everything_Reset; external 'EVERYTHING.DLL';

procedure Everything_CleanUp; external 'EVERYTHING.DLL';

function Everything_GetMajorVersion; external 'EVERYTHING.DLL';

function Everything_GetMinorVersion; external 'EVERYTHING.DLL';

function Everything_GetRevision; external 'EVERYTHING.DLL';

function Everything_GetBuildNumber; external 'EVERYTHING.DLL';

function Everything_Exit; external 'EVERYTHING.DLL';

function Everything_IsDBLoaded; external 'EVERYTHING.DLL';

function Everything_IsAdmin; external 'EVERYTHING.DLL';

function Everything_IsAppData; external 'EVERYTHING.DLL';

function Everything_RebuildDB; external 'EVERYTHING.DLL';

function Everything_UpdateAllFolderIndexes; external 'EVERYTHING.DLL';

function Everything_SaveDB; external 'EVERYTHING.DLL';

function Everything_SaveRunHistory; external 'EVERYTHING.DLL';

function Everything_DeleteRunHistory; external 'EVERYTHING.DLL';

function Everything_GetTargetMachine; external 'EVERYTHING.DLL';

function Everything_GetRunCountFromFileNameW; external 'EVERYTHING.DLL';

function Everything_GetRunCountFromFileNameA; external 'EVERYTHING.DLL';

function Everything_SetRunCountFromFileNameW; external 'EVERYTHING.DLL';

function Everything_SetRunCountFromFileNameA; external 'EVERYTHING.DLL';

function Everything_IncRunCountFromFileNameW; external 'EVERYTHING.DLL';

function Everything_IncRunCountFromFileNameA; external 'EVERYTHING.DLL';

end.

虽然有类似Everything的算法实现,但是Everything功能更多,而且有维护。

类似Everything的算法:

https://blog.csdn.net/dbyoung/article/details/80050792