### Checking Everything Version Source: https://www.voidtools.com/en-us/support/everything/sdk/everything_getmajorversion Example demonstrating how to retrieve and compare version components to verify if the installed version meets specific requirements. ```C DWORD majorVersion; DWORD minorVersion; DWORD revision; // get version information majorVersion = Everything_GetMajorVersion(); minorVersion = Everything_GetMinorVersion(); revision = Everything_GetRevision(); if ((majorVersion > 1) || ((majorVersion == 1) && (minorVersion > 3)) || ((majorVersion == 1) && (minorVersion == 3) && (revision >= 4))) { // do something with version 1.3.4 or later } ``` -------------------------------- ### Install Everything Server Service Source: https://www.voidtools.com/en-us/support/everything/everything_server Executes the installation of the Everything client service via command line. ```bash Everything.exe -install-client-service ``` -------------------------------- ### Manage Everything Service via Command Line Source: https://www.voidtools.com/en-us/support/everything/everything_service Use these commands to install, uninstall, start, or stop the Everything service from a terminal. ```text Everything.exe -install-service [-install-service-pipe-name ] [-install-service-security-descriptor ] Everything.exe -uninstall-service Everything.exe -start-service Everything.exe -stop-service ``` -------------------------------- ### Everything Installation and Configuration Options Source: https://www.voidtools.com/en-us/support/everything/command_line_options A collection of command line flags for managing Everything settings, service installation, and system integration. ```text -app-data -noapp-data ``` ```text -choose-language ``` ```text -choose-volumes ``` ```text -service-port ``` ```text -service-pipe-name ``` ```text -enable-run-as-admin -disable-run-as-admin ``` ```text -enable-update-notification -disable-update-notification ``` ```text -install ``` ```text -install-client-service -uninstall-client-service ``` ```text -install-config ``` ```text -install-desktop-shortcut -uninstall-desktop-shortcut ``` ```text -install-all-users-desktop-shortcut -uninstall-all-users-desktop-shortcut ``` ```text -install-efu-association -uninstall-efu-association ``` ```text -install-folder-context-menu -uninstall-folder-context-menu ``` ```text -install-options ``` ```text -install-quick-launch-shortcut -uninstall-quick-launch-shortcut ``` ```text -install-run-on-system-startup -uninstall-run-on-system-startup ``` ```text -install-service -uninstall-service ``` ```text -install-service-port ``` ```text -install-service-pipe-name ``` ```text -install-start-menu-shortcuts ``` -------------------------------- ### Everything_GetTargetMachine Usage Example Source: https://www.voidtools.com/en-us/support/everything/sdk/everything_gettargetmachine Example demonstrating how to call the function and check the returned architecture constant. ```C DWORD targetMachine; // Get the attributes of the first visible result. targetMachine = Everything_GetTargetMachine(); if (targetMachine == EVERYTHING_TARGET_MACHINE_X64) { // do something with x64 build. } else if (targetMachine == EVERYTHING_TARGET_MACHINE_X86) { // do something with x86 build. } ``` -------------------------------- ### Everything C SDK Usage Example Source: https://www.voidtools.com/en-us/support/everything/sdk/c A basic example demonstrating how to set a search query, execute it, and iterate through the results using the Everything C SDK. ```APIDOC ## C SDK Usage ### Description This example demonstrates how to initialize a search query for "abc", execute the query, and print the file name and path for each result found. ### Implementation ```c #include #include "Everything.h" int main(int argc,char **argv) { DWORD i; // Set the search string to abc Everything_SetSearch("abc"); // Execute the query. Everything_Query(TRUE); // Display results. for(i=0;i2560 width:800..1920 height:600..1080 dimensions:800x600..1920x1080 ``` -------------------------------- ### Advanced metadata search examples Source: https://www.voidtools.com/en-us/support/everything/searching Examples for searching by year, genre, track, and other metadata. ```text year:2002..2005 genre:electronic regex:album:^[a-n] wildcards:title:red* track:>10 year:>=2000 ``` -------------------------------- ### Everything_GetBuildNumber Usage Example Source: https://www.voidtools.com/en-us/support/everything/sdk/everything_getbuildnumber Demonstrates how to call the function and perform a conditional check based on the returned build number. ```C DWORD buildNumber; // get the build number buildNumber = Everything_GetBuildNumber(); if (buildNumber >= 686) { // do something with build 686 or later. } ``` -------------------------------- ### Everything_GetSort Usage Example Source: https://www.voidtools.com/en-us/support/everything/sdk/everything_getsort Basic implementation showing how to call the function to store the current sort order in a variable. ```C DWORD dwSort = Everything_GetSort(); ``` -------------------------------- ### Install and Uninstall Everything ETP Client Service Source: https://www.voidtools.com/en-us/support/everything/etp Commands to manage the Everything ETP server as a Windows service from the command prompt. ```bash Everything.exe -install-client-service ``` ```bash Everything.exe -uninstall-client-service ``` -------------------------------- ### Retrieve Highlighted Result Path Source: https://www.voidtools.com/en-us/support/everything/sdk/everything_getresulthighlightedfullpathandfilename Example demonstrating how to set a search, execute a query, and retrieve the highlighted path for the first result. ```cpp // set the search text to abc AND 123 Everything_SetSearch("abc 123"); // execute the query Everything_Query(TRUE); // Get the highlighted full path and file name information of the first visible result. LPCTSTR lpHighlightedFullPathAndFileName = Everything_GetResultHighlightedFullPathAndFileName(0); ``` -------------------------------- ### Query Everything SDK with Python Source: https://www.voidtools.com/en-us/support/everything/sdk/python Initializes the Everything DLL, executes a search query, and iterates through results to display file paths, modification dates, and sizes. ```python import ctypes import datetime import struct #defines EVERYTHING_REQUEST_FILE_NAME = 0x00000001 EVERYTHING_REQUEST_PATH = 0x00000002 EVERYTHING_REQUEST_FULL_PATH_AND_FILE_NAME = 0x00000004 EVERYTHING_REQUEST_EXTENSION = 0x00000008 EVERYTHING_REQUEST_SIZE = 0x00000010 EVERYTHING_REQUEST_DATE_CREATED = 0x00000020 EVERYTHING_REQUEST_DATE_MODIFIED = 0x00000040 EVERYTHING_REQUEST_DATE_ACCESSED = 0x00000080 EVERYTHING_REQUEST_ATTRIBUTES = 0x00000100 EVERYTHING_REQUEST_FILE_LIST_FILE_NAME = 0x00000200 EVERYTHING_REQUEST_RUN_COUNT = 0x00000400 EVERYTHING_REQUEST_DATE_RUN = 0x00000800 EVERYTHING_REQUEST_DATE_RECENTLY_CHANGED = 0x00001000 EVERYTHING_REQUEST_HIGHLIGHTED_FILE_NAME = 0x00002000 EVERYTHING_REQUEST_HIGHLIGHTED_PATH = 0x00004000 EVERYTHING_REQUEST_HIGHLIGHTED_FULL_PATH_AND_FILE_NAME = 0x00008000 #dll imports everything_dll = ctypes.WinDLL ("C:\\EverythingSDK\\DLL\\Everything32.dll") everything_dll.Everything_GetResultDateModified.argtypes = [ctypes.c_int,ctypes.POINTER(ctypes.c_ulonglong)] everything_dll.Everything_GetResultSize.argtypes = [ctypes.c_int,ctypes.POINTER(ctypes.c_ulonglong)] everything_dll.Everything_GetResultFileNameW.argtypes = [ctypes.c_int] everything_dll.Everything_GetResultFileNameW.restype = ctypes.c_wchar_p #setup search everything_dll.Everything_SetSearchW("test.py") everything_dll.Everything_SetRequestFlags(EVERYTHING_REQUEST_FILE_NAME | EVERYTHING_REQUEST_PATH | EVERYTHING_REQUEST_SIZE | EVERYTHING_REQUEST_DATE_MODIFIED) #execute the query everything_dll.Everything_QueryW(1) #get the number of results num_results = everything_dll.Everything_GetNumResults() #show the number of results print("Result Count: {}".format(num_results)) #convert a windows FILETIME to a python datetime #https://stackoverflow.com/questions/39481221/convert-datetime-back-to-windows-64-bit-filetime WINDOWS_TICKS = int(1/10**-7) # 10,000,000 (100 nanoseconds or .1 microseconds) WINDOWS_EPOCH = datetime.datetime.strptime('1601-01-01 00:00:00', '%Y-%m-%d %H:%M:%S') POSIX_EPOCH = datetime.datetime.strptime('1970-01-01 00:00:00', '%Y-%m-%d %H:%M:%S') EPOCH_DIFF = (POSIX_EPOCH - WINDOWS_EPOCH).total_seconds() # 11644473600.0 WINDOWS_TICKS_TO_POSIX_EPOCH = EPOCH_DIFF * WINDOWS_TICKS # 116444736000000000.0 def get_time(filetime): """Convert windows filetime winticks to python datetime.datetime.""" winticks = struct.unpack('