Да, это возможно с помощью API поиска Windows Desktop (WDS). Вам понадобится SDK , который даже обеспечивает сборку .Net, если я правильно помню. Затем посмотрите документацию , чтобы узнать, как запросить индекс WDS. Это довольно просто, вот пример C #, который они предоставляют:
OleDbConnection conn = new OleDbConnection(
"Data Source=(local);Initial Catalog=Search.CollatorDSO;Integrated Security=SSPI;User ID=<username>;Password=<password>");
OleDbDataReader rdr = null;
conn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT Top 5 System.ItemPathDisplay FROM SYSTEMINDEX", conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr[0]);
}
rdr.Close();
conn.Close();
Когда я использовал это в проекте некоторое время назад, строка запроса, которую я использовал, была построена примерно так:
CSearchManager SearchManager = new CSearchManager();
CSearchCatalogManager CatalogManager = SearchManager.GetCatalog("SystemIndex");
CSearchQueryHelper QueryHelper = CatalogManager.GetQueryHelper();
string connection_string = QueryHelper.ConnectionString;
Затем выполнить простой поиск файла:
QueryHelper.QueryWhereRestrictions = "AND scope='file:'";
QueryHelper.QuerySorting = "System.ItemNameDisplay ASC";
string sqlQuery = QueryHelper.GenerateSQLFromUserQuery(Filename);
Из документации вы можете увидеть, как создавать запросы, которые дают вам необходимые результаты.
Теперь короткая заметка. Мне удалось создать клон Vista Start Search, однако я сделал это, сначала просканировав файлы ссылок в местах, где Vista хранит ссылки в меню «Пуск» (% appdata% \ Microsoft \ Windows \ Start Menu & C: \ ProgramData \ Microsoft \ Windows \ Start Menu), затем асинхронная загрузка WDS приводит к фону, который лучше воспроизводит поведение при запуске поиска, чем полагается исключительно на WDS.