文章编号: 122787 - 最后修改: 2005年7月11日 - 修订: 2.4 SAMPLE: 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 中使用 Regedit 设置文件关联注意 : Regedit 可用,只在 Windows NT 中,而不 Windows 3.1 版。用户可以将还关联的文件与应用程序使用注册表编辑器。 在 编辑 菜单上选择 添加文件类型 或 修改文件类型 (修改现有的文件类型)。 将出现一个对话框类似于文件管理器相关的对话框。 如所述的文件管理器执行相同的步骤。 在 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 章、 外壳程序库或联机丛书。 窗口 3.1 SDK 帮助文件,注册数据库,外壳程序库函数。 Win 32 程序员参考,卷 2,章节 52、 注册表和初始化的文件或联机丛书。 Win32 SDK 帮助文件注册表和初始化 文件管理器帮助文件。 REGEDIT.HLP REGEDT32.HLP 这篇文章中的信息适用于:
机器翻译注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。 点击这里察看该文章的英文版: 122787?
(http://support.microsoft.com/kb/122787/en-us/
)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。 | 文章翻译
|


回到顶端
