C# 在c中进行windows高亮显示搜索#

C# 在c中进行windows高亮显示搜索#,c#,windows,search,wds,C#,Windows,Search,Wds,是否有可能通过c#实际执行windows搜索(您在Vista中通过higlighting菜单找到的搜索(例如,您编写“fire”并获取“firefox”) 谢谢:)Windows search在搜索字段中的文本更新时,通过查询索引使用索引来获得结果。为了使其正常工作,引擎必须能够非常快速地返回结果,因此一个非常有效的查找集合是一个好主意 然后,当搜索框中的文本更改时,您将查询哈希表。是的,这可以通过Windows桌面搜索(WDS)API实现。您将需要,如果我没有记错的话,它甚至提供了一个.Net

是否有可能通过c#实际执行windows搜索(您在Vista中通过higlighting菜单找到的搜索(例如,您编写“fire”并获取“firefox”)


谢谢:)

Windows search在搜索字段中的文本更新时,通过查询索引使用索引来获得结果。为了使其正常工作,引擎必须能够非常快速地返回结果,因此一个非常有效的查找集合是一个好主意


然后,当搜索框中的文本更改时,您将查询哈希表。

是的,这可以通过Windows桌面搜索(WDS)API实现。您将需要,如果我没有记错的话,它甚至提供了一个.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();
然后执行简单的文件搜索:

QueryHelper.QueryWhereRestrictions = "AND scope='file:'";
QueryHelper.QuerySorting = "System.ItemNameDisplay ASC";
string sqlQuery = QueryHelper.GenerateSQLFromUserQuery(Filename);
从文档中,您可以看到如何构建查询以获得所需的结果


现在,一个简短的说明。我能够构建Vista开始搜索克隆,但是,我首先扫描Vista存储开始菜单链接的位置中的链接文件(%appdata%\Microsoft\Windows\Start Menu&C:\ProgramData\Microsoft\Windows\Start Menu),然后在后台异步加载WDS结果,这比单纯依赖WDS更好地复制开始搜索行为。

谢谢:)我只是想知道字段是什么:User ID=;密码=。我的系统/windows帐户上的用户名和密码?你有没有想过怎么做这个突出显示的部分?
QueryHelper.QueryWhereRestrictions = "AND scope='file:'";
QueryHelper.QuerySorting = "System.ItemNameDisplay ASC";
string sqlQuery = QueryHelper.GenerateSQLFromUserQuery(Filename);