zoukankan      html  css  js  c++  java
  • 利用Everything的DLL实现文件的搜索功能

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;

    namespace EverythingSDK
    {
        
    public partial class Form1 : Form
        {
            
    #region 引用定义
            
    const int EVERYTHING_OK = 0;
            
    const int EVERYTHING_ERROR_MEMORY = 1;
            
    const int EVERYTHING_ERROR_IPC = 2;
            
    const int EVERYTHING_ERROR_REGISTERCLASSEX = 3;
            
    const int EVERYTHING_ERROR_CREATEWINDOW = 4;
            
    const int EVERYTHING_ERROR_CREATETHREAD = 5;
            
    const int EVERYTHING_ERROR_INVALIDINDEX = 6;
            
    const int EVERYTHING_ERROR_INVALIDCALL = 7;

            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_SetSearch(string lpSearchString);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_SetMatchPath(bool bEnable);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_SetMatchCase(bool bEnable);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_SetMatchWholeWord(bool bEnable);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_SetRegex(bool bEnable);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_SetMax(int dwMax);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_SetOffset(int dwOffset);

            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_GetMatchPath();
            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_GetMatchCase();
            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_GetMatchWholeWord();
            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_GetRegex();
            [DllImport(
    "Everything.dll")]
            
    public static extern UInt32 Everything_GetMax();
            [DllImport(
    "Everything.dll")]
            
    public static extern UInt32 Everything_GetOffset();
            [DllImport(
    "Everything.dll")]
            
    public static extern string Everything_GetSearch();
            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_GetLastError();

            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_Query();

            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_SortResultsByPath();

            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_GetNumFileResults();
            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_GetNumFolderResults();
            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_GetNumResults();
            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_GetTotFileResults();
            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_GetTotFolderResults();
            [DllImport(
    "Everything.dll")]
            
    public static extern int Everything_GetTotResults();
            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_IsVolumeResult(int nIndex);
            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_IsFolderResult(int nIndex);
            [DllImport(
    "Everything.dll")]
            
    public static extern bool Everything_IsFileResult(int nIndex);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_GetResultFullPathName(int nIndex, StringBuilder lpString, int nMaxCount);
            [DllImport(
    "Everything.dll")]
            
    public static extern void Everything_Reset();
            
    #endregion

            
    public Form1()
            {
                InitializeComponent();
            }

            
    private void btnQuery_Click(object sender, EventArgs e)
            {
                
    int i;
                
    const int bufsize = 260;
                StringBuilder buf 
    = new StringBuilder(bufsize);

                Everything_SetSearch(txtKeyWord.Text);

                Everything_Query();

                listResult.Items.Clear();
             
                Text 
    = txtKeyWord.Text + " - " + Everything_GetNumResults() + " 结果";

                
    for (i = 0; i < Everything_GetNumResults(); i++)
                {
                    Everything_GetResultFullPathName(i, buf, bufsize);

                    listResult.Items.Insert(i, buf);
                }
            }
        }
    }
  • 相关阅读:
    Android 通过solid来定义不同边框的颜色,可以只定义一个边框的颜色
    Java里的简单替换
    ActionBar
    char、short、int、float、double对应字节
    Java和JDK版本的关系-(转载)
    JFlash ARM对stm32程序的读取和烧录-(转载)
    STM32的时钟系统RCC详细整理(转载)
    STM32F7系列时钟相关问题:HSE模式配置(旁路模式、非旁路模式
    git OpenSSL SSL_connect问题
    keil使用VScode外部编辑器
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/2086213.html
Copyright © 2011-2022 走看看