我想确定如何以编程方式从Microsoft Search开始/停止/暂停索引器。
我知道这是可能的,因为我已经在像这样的程序中看到它:http://brandontools.com/files/folders/sidebar_gadgets/entry511.aspx
但是,我无法在MSDN或任何地方找到任何文档。
有一种“Windows搜索”服务,可以使用传统的服务控制方法进行控制。但是,启动/停止此服务还会更改搜索本身的可用性。我想控制索引器。
有没有人知道在哪里可以找到描述如何与索引器交互的文档?我的搜索能力让我失望。
答案 0 :(得分:3)
没有办法简单地禁用索引部分。这是一个全有或全无的服务。 WSearch服务的描述说明:
“为文件,电子邮件和其他内容(通过可扩展性API)提供内容索引和属性缓存。服务响应文件和电子邮件通知以索引修改的内容。如果服务被停止或禁用,资源管理器将无法显示项目的虚拟文件夹视图,并在资源管理器中搜索将回退到逐项慢搜索。“
但是,您可以通过驱动器/文件夹属性控制它...从资源管理器中,您可以为单个驱动器切换它(请参阅驱动器的属性;有一个选项“允许索引服务... “)或文件夹(文件夹属性 - >高级 - >”对于快速搜索,允许索引服务......“)。
编辑 ...有点谷歌搜索,上面的属性可用 - 如果您查看System.IO.FileAttributes的MSDN页面,有一个属性NotContentIndexed
description 该文件不会被操作系统的内容索引服务编入索引。我认为你应该能够在单个文件夹上设置它。如果设置在驱动器级别(没有通过驱动器的递归运行),我不知道这是否有效,但希望它能让你在最终想要实现的任何事情上领先一步。
答案 1 :(得分:1)
According the Microsoft没有正式的方法。
答案 2 :(得分:0)
这样的事情:
ServiceController service = new ServiceController(“WSearch”);
service.Start();
或
service.Stop();
答案 3 :(得分:0)
以下是以编程方式与Windows搜索进行交互的精彩教程:article at JoyOfCode。
Windows Search 3.x SDK提供了一个适用于Windows Search 3或4的.NET API。
不幸的是,它不会暴露暂停/恢复。我发现的所有索引控件样本都使用WMI来停止搜索服务。显然,这将停止索引,但代价是搜索本身无法使用。
答案 4 :(得分:0)
这是一个旧线程,但我碰到了它。其他人也可能。
使用AutoIT脚本打开索引选项,然后单击对话框中的“暂停”按钮。
答案 5 :(得分:-1)
打开“运行”对话框(开始|运行),输入(或复制) %SystemRoot%\ system32 \ compmgmt.msc / s 展开最后一个