问题标签 [windows-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
364 浏览

winapi - PROPDESC 文件是否有已发布的 XML 模式定义?

在 MSDN文档中,我看到PROPDESC文件看起来像 XSD 的片段,用于propertyDescriptionList属性之类的东西。整个架构定义是否在某个地方,以便我可以验证我的 .propdesc 文件?

这是来自 Windows 7 SDK 示例的示例 propdesc 文件,值得一看。该示例定义了 .recipe 的自定义文件类型。

更新: MSDN上有一条注释需要 xmlns 引用,http://schemas.microsoft.com/windows/2006/propertydescription但据我所知,这只是一个占位符 URL。

0 投票
1 回答
639 浏览

windows-search - 注册示例属性处理程序

因此,我从 Windows 7 SDK 示例构建了 RecipePropertyHandler,运行了 regsvr32,并注册了我的 PROPDESC 文件。这使我能够编辑名为Difficulty的文件类型的自定义属性.recipe,并在详细信息窗格中使用三态下拉框,还可以选择将该属性添加为资源管理器详细信息视图中的列。

到目前为止,一切都很好。但是,我正在尝试按照此 MSDN 线程的说明进行操作,但我看到了一些奇怪的事情。

首先,他们提到的三个注册表项都没有显示给我。具体来说:

  1. HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertySchema\
  2. HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers.recipe
  3. HKLM\Software\Classes\CLSID{50D9450f-2a80-4f08-93b9-2eb526477d1a} [实际上这是来自 Vista SDK,看起来 CLSID 已更改,但新的 CLSID 也不在注册表中。]

他们在另一个线程上提到了一个 .reg 文件,但我认为它不再那样工作了。对于它的价值,我确实在HKEY_CLASSES_ROOT\.recipe. 我还可以使用 prop.exe 实用程序查看已安装的属性,如下所示:

无论如何,主要问题是,我是否不能在 Windows 资源管理器搜索 UI 中使用其规范名称或助记符名称来查询此属性?这似乎对我不起作用,从另一个线程中也不清楚它是否受支持。不过,Vista 和 Windows 7 可能会将这些信息存储在不同的位置。

但是,我确实注意到至少有一个使用高级搜索查询语法支持的非自定义属性,即Microsoft.IE.VisitCount在 ie9props.propdesc 中定义的。所以我认为必须有办法做到这一点。当我propertyname:value使用Advanced Query Syntax键入时,我正在寻找的是资源管理器搜索栏中的蓝色文本。我想他们是否支持“详细信息”窗格中的自定义编辑 UI,如果该属性是可查询的,它肯定会给我在资源管理器 UI 中的一个小搜索过滤器。

0 投票
1 回答
1154 浏览

c# - Windows 搜索、SQL 查询、本地/远程

我已经在 Windows 2012 上安装了 Windows Search Service 功能。现在我正在测试应该将查询从 Windows 2008 发送到 Windows 2012 目录的表单。Windows 2008 也安装了 Windows Search 服务来安装/注册 db 驱动程序。

该表单只能在 Windows 2012 本地正常工作,但不能从 Windows 2008 到 Windows 2012(远程访问目录),Wireshark 不显示传出查询。

查询本地目录(成功):

查询远程目录 Windows 2008 > Windows 2012(不成功)

部分代码 - 测试期间仅修改 select

参考

MSDN - 范围和目录谓词

0 投票
1 回答
1267 浏览

c# - Windows 搜索查询 c#

我正在尝试搜索包含短语或其名称包含短语的文件。

我获得了一个有时有结果的查询,但我没有得到它何时以及为什么返回结果。

这是我正在使用的查询:

我只想获取包含 MYPHRASE 名称或在内容中包含它的所有文件。

这是我的连接字符串:

谁能告诉我我的查询有什么问题?

0 投票
2 回答
1574 浏览

c# - 从 C# 在远程计算机上运行 Windows 搜索查询时出错

当我尝试执行以下 OLEDB 命令以编程方式查询同一域上远程计算机 (ALEC-HP) 上的搜索索引时,我收到以下错误消息

未指定的错误:-2147219688(0x80040718)

在本地机器上\\ALEC-HP\Simon.ALEKATEST.000可以看到共享 OK

如果查询简化为

发生同样的错误。

对本地索引的查询

运行正常。在 ALEC-HP 上重建搜索索引没有帮助。

远程机器 ALEC-HP 运行 Windows 7,本地搜索在该机器上运行正常。

  • 使用运行 Win 8.1 的远程计算机,远程索引查询运行正常。
  • 在运行查询的远程计算机和不运行查询的远程计算机上,我看不到搜索索引文件夹 (C:\Program Data\Microsoft\Search) 的权限有任何显着差异。
  • Win 8.1 远程机器似乎没有搜索索引文件夹 C:\Program Data\Microsoft\Search\Data\Applications\Windows\Projects\SystemIndex\Indexer\CiFiles,其中包含 Win 7 机器上存在的 .ci 文件。
  • 我认为这些是 Windows Search Indexer 使用的 edb 数据库(Jet Blue)的数据库文件。
  • 本地计算机运行 Windows 8.1。

问题现在出现在运行 Win 8.1 的远程计算机的搜索索引上

0 投票
1 回答
160 浏览

c# - 使用 C# 通过搜索协议执行常见桌面搜索

我正在尝试使用 C# 根据windows 搜索协议触发 windows 通用桌面搜索。实现这一点是非常简单的代码。

以上对 Win7 和 Win8 都适用,会出现一个搜索窗口。但是当我按照文档中的说明添加查询时:

它只是没有反应,也不例外。之后我尝试在查询中添加位置信息:

奇怪的是,这适用于 Win7,搜索窗口提示,并按预期开始搜索“a”。但只是在Win8中失败并抛出了一个执行:

未处理的异常:System.ComponentModel.Win32Exception:系统找不到 在 System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo
)指定的驱动器startInfo) 在 System.Diagnostics.Process.Start(String fileName) 在 ProcessStart.Program.Main(String[] args) 在 e:\WorkSpace\ProcessStart\Proc essStart\Program.cs:line 15



我做错了什么,Win7和Win8在搜索协议上有什么区别?谢谢!

0 投票
0 回答
113 浏览

windows - 使用 Windows Search 在 TIFF 文件中搜索自定义属性

我想扩展 Windows 搜索。它应该能够在 TIFF 文件中搜索一些自定义属性。

通常是否可以扩展相应IPropertyStoreor的默认实现IFilter

0 投票
0 回答
83 浏览

windows - 资源管理器如何枚举 Windows 搜索结果?

我试图了解 Windows 资源管理器如何显示搜索结果。

根据我的经验(Windows 7),对于常规文件夹(和命名空间扩展),它似乎调用IShellFolder->EnumObjects.

我也知道IEnumShellItems界面。我做了一些 API 监控,在显示搜索结果时似乎 Explorer 没有调用这些。

那么 Explorer 是如何枚举结果的呢?Windows Search(我猜SearchFolder.dll)如何提供结果?

有人可以描述双方使用的流程和接口吗?

0 投票
0 回答
230 浏览

powershell - Windows 搜索查询的总和结果

我正在尝试使用 PowerShell 和 Windows Search 来获取我的磁盘使用情况的一些统计信息。这就是我现在想出的:

这行得通,但它看起来有点难看。我也发现并尝试了这个:

看起来好多了,但会引发错误:

找不到“计算”的重载和参数计数:“1”

0 投票
1 回答
10412 浏览

c# - 如何在 C# 中使用 Windows 搜索服务

我正在开发一个应用程序,用户可以在本地计算机或网络上搜索文件或文件夹。我正在使用DirectoryInfo.GetDirecotories().

  1. 但我还想添加 Windows 7 用于搜索的功能,我相信使用索引。我还在 msdn 上看到了Windows Searching Service,但我不确定哪种方式最好:查询索引目录或使用搜索服务。有什么建议么?
  2. 我想知道是否有人可以在 C# 中给我一个搜索索引目录的小示例。

提前致谢!