是否有可能拦截 Windows 中的“打开文件”事件并用其他应用程序替换默认的打开应用程序?

是否有可能拦截 Windows 中的“打开文件”事件并用其他应用程序替换默认的打开应用程序?

假设我有两个.pdf文件。一个是漫画书,另一个只是一份文档。我最终想要实现的行为是,当我双击漫画书时,它会打开漫画书阅读器软件,但当我双击普通文档时,它会在常规 PDF 阅读器中打开它。

为了实现这个目标,我的想法是拦截“打开文件”窗口事件并以某种方式在其中注入一个小脚本。也许在将要打开的文件路径中搜索一个模式。假设我所有的漫画书都在一个/comic/文件夹中。因此,如果路径包含字符串,comic我会使用漫画书阅读器打开它,否则我会使用默认想要打开它的任何窗口打开它。

问题是,如何使用不同的程序打开具有相同扩展名的不同文件没有浏览open with...菜单?

我见过‘autohotkey’ 脚本如果您按下热键,它将在特定程序中打开光标下的文件。这在某种程度上是一个不错的解决方案,但我想知道是否有更好的解决方案?

编辑:另一个想法是将 Windows 中打开 PDF 的默认应用程序替换为执行上述操作的脚本。IE 搜索路径以查找模式,然后根据其发现在程序中打开它。这样的事情可能吗?

答案1

使用您喜欢的语言创建一个程序,将文件名作为命令行参数,进行一些猜测(仅基于路径,或基于 PDF 文件的内容),然后打开 Windows全部使用该程序可以打开 PDF 文件。(在 Windows 中,我可能会选择 VBScript 或 Python,因为它们有“无窗口”解释器,甚至 AutoHotkey 也可以使用。)

这是至少黑客选项——没有必要进行神奇的“事件拦截”。

在 Microsoft Office 采用 OOXML(.docx、.xlsx)格式之前,Office 2003 左右可以选择将文档存储为基本 XML 文件。所使用的文件扩展名.xml与类型无关 - 在 Word 中打开的文档为 .xml,在 Excel 中打开的电子表格为 .xml,在 Internet Explorer 中打开的所有其他随机 XML 文件也为 .xml。

其工作方式是,.xml 文件与专用的“启动器”程序相关联,该程序查看 XML 文件的结构并打开 Word、Excel 或其他适当的程序。

相关内容