文章编号: 122787 - 最后修改: 2005年7月11日 - 修订: 2.4 示例: FileAsso.exe 演示如何使用文件关联本页概要Windows 提供的文件关联,以便应用程序可以注册它支持的文档的类型。 这是很有益的因为它允许用户双击或选择一个文档文件管理器中对其进行编辑或打印它。 ShellExecute() API 还支持文件关联。 文件关联还允许用户与应用程序通过文件管理器的单个实例中打开多个文档。 ShellExecute() 在 Windows 95 中有更多好处。 更多信息以下文件是可从 Microsoft 下载中心下载: FileAsso.exe
(http://download.microsoft.com/download/platformsdk/sample19/1/w9xnt4/en-us/fileasso.exe)
有关如何下载 Microsoft 支持文件的其他信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 119591?
(http://support.microsoft.com/kb/119591/EN-US/
)
濡備綍鑾峰緱 Microsoft 支持文件从联机服务 Microsoft 扫描此文件的病毒。 Microsoft 使用该文件的过帐日期上可用的最新病毒检测软件。 该文件存储在安全性得到增强的服务器,以帮助防止未经授权对其进行更改文件上。 以下信息适用于 文件打开 和 文件打印。 以便的阅读本文讨论了打开文件以解释文件关联的工作方式。 当用户双击文档时,文件管理器将调用具有文件名 ShellExecute()。 ShellExecute() 检查登记数据库,将该文件扩展名与特定的应用程序相关联的条目。 如果某项存在并且未指定 DDE 命令,ShellExecute() 启动与指定应用程序在注册表中。 如果注册表指定使用的 DDE 命令,ShellExecute() 尝试建立与该应用程序中使用该应用程序的主题的 DDE 对话。 如果应用程序响应 DDE 连接,ShellExecute() 发送与注册表中指定了一个执行 DDE 命令。 应用程序定义上此对话的具体情况取决于尤其要连接到,该服务和主题的名称和正确的 DDE 执行要使用的命令语法。 但是,如果要建立该对话的尝试失败,ShellExecute() 启动应用程序在注册表中指定,并且试图建立 DDE 连接。 没有可用的一种更多选项,当应用程序未运行时,这似乎是适当的文件打印。 此选项在 ShellExecute() 发送不同的 Execute 语句中,该应用程序需要打开并打印该文档。 完成该打印它退出。 有两个步骤,说明打开多个文档通过文件关联的单个应用程序实例的应用程序。 作为一个示例假设 MyApp 是应用程序和 AssocSupport 是主题。 大多数应用程序使用 MyApp 作为他们的应用程序名称和系统作为主题。
使用设置文件关联的文件管理器时将使用 文件管理器 的文件类型的关联,选择从 文件 菜单中的 关联。 关联对话框将显示现有文件关联的列表。 此对话框允许您添加一个新的文件类型 (或文件关联)、 修改现有文件类型或删除现有的文件类型。 新建文件类型 按钮允许用户添加新的文件扩展名的关联。 下面是该步骤:
使用 Windows NT 中的注册表编辑器设置文件关联注意: 注册表编辑器是仅在 Windows NT 中,不在 Windows 版本 3.1 中可用。用户可以使用 regedit 还与一个应用程序关联的文件。 从 编辑 菜单中选择 添加文件类型 或 修改文件类型 (若要修改现有的文件类型)。 出现一个对话框,类似于文件管理器关联的对话框。 文件管理器所述,请按照相同的步骤。 在 Windows 版本 3.1,定义文件类型是通过此方法后转到文件管理器将关联的对话框,并附加到该扩展名的文件类型。 使用程序集文件关联您还可以以编程方式设置该关联。 设置您的应用程序在其他计算机上时,这是很有用。 您可以通过安装程序提供此功能。 第一个执行此操作的方法 (更简单的方法) 是使用 regedit 合并更改从一个文件。 此语法是:
REGEDIT
HKEY_CLASSES_ROOT\.riy = FMA000_File_assoc
HKEY_CLASSES_ROOT\FMA000_File_assoc = File_assoc
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\command = fileasso.EXE
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\ddeexec = [Open(%1)]
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\ddeexec\application
= Myserver
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\ddeexec\topic = system
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\command = fileasso.EXE
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\ddeexec = [Open(%1)]
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\ddeexec\application
= MYServer
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\ddeexec\topic = System
HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\ddeexec\ifexec =
[Test(%1)]
// Your extensions. HKEY_CLASSES_ROOT\.riy = FMA000_File_assoc //File type name. HKEY_CLASSES_ROOT\FMA000_File_assoc = File_assoc // Command to execute when application is not running or dde is not // present and Open command is issued. HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\command = fileasso.EXE // DDE execute statement for Open. HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\ddeexec = [Open(%1)] // The server name your application responds to. HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\ddeexec\application = Myserver // Topic name your application responds to. HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\open\ddeexec\topic = system // Command to execute when application is not running or dde is not // present and print command is issued. HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\command = fileasso.EXE // DDE execute statement for Print. HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\ddeexec = [Open(%1)] // The server name your application responds to. HKEY_CLASSES_ROOT\FMA000_File_assoc\shell\print\ddeexec\application = MYServer // Topic name your application responds to. HKEY_CLASSES_ROOT\FMA000_File assoc\shell\print\ddeexec\topic = System // DDE execute statement for print if the application is not already // running. This gives the options for a an application to Run, Print // and Exit. HKEY_CLASSES_ROOT\FMA000_File assoc\shell\print\ddeexec\ifexec = [Test(%1)] 参考Windows SDK 程序员参考,卷 1 章 7 Shell 库或联机丛书。 窗口 3.1 SDK 帮助文件,注册数据库 Shell 库函数。 Win32 程序员参考,卷 2 章 52 注册表和初始化文件或联机丛书。 Win32 SDK 帮助文件注册表和初始化 文件管理器帮助文件。 REGEDIT.HLP REGEDT32.HLP 这篇文章中的信息适用于:
机器翻译注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。 点击这里察看该文章的英文版: 122787?
(http://support.microsoft.com/kb/122787/en-us/
)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。 | 文章翻译
|

回到顶端
