14

我的印象是,当您双击文件(或从右键单击菜单中选择“打开方式”)时,Windows 只是以文件名作为参数调用应用程序。像这样的东西:

C:\> App.exe 文件.abc

但是,我只是双击了一个 .xls 文件,然后检查了出现的 Excel 实例的 PEB。令我惊讶的是,命令行包含文件名作为参数。

所以这让我想知道。Windows 用于让相关应用程序打开文件的机制到底是什么?是否有每个支持此类工具的应用程序都必须公开的特殊 API?

4

2 回答 2

6

Windows 将文件传递给程序的方式因应用程序而异。此行为由注册表控制

在 Excel 的情况下,他们为此目的使用所谓的DDE。这就是为什么您在命令行上什么也看不到的原因。

于 2010-03-14T14:17:16.217 回答
-1

文件名实际上并不总是作为参数传递。

您自己有一个与您的注册表中的某些特定文件类型关联的程序列表。系统检查文件扩展名然后启动与之关联的进程。但始终将其作为参数传递是不正确的。操作系统有自己的体系结构,可以从其程序集中调用程序。

于 2010-03-14T14:23:20.357 回答