开发和测试期间在播放器和调试器版本之间来回切换的应用程序开发人员,可能会遇到 Flash Player 控件安装和注册方法方面的问题。

准备事项

此页面仅适用于 Flash 和 Flex 开发人员。如果您是寻求升级 Flash Player 的客户,请参阅下列内容之一:

面向支持版本的开发

从 2007 年 12 月 18 日发布安全公告开始,Adobe 停止了对 Adobe Flash Player 7 的支持,并且不再提供安全更新。Adobe 建议使用受支持系统的所有 Flash Player 用户都更新到最新版的 Flash Player,它可通过 Flash Player 下载中心下载。

Adobe 针对 Flash Player 的支持策略是支持当前和以前的主要版本。为了照顾使用 Windows 95、Microsoft NT 和 Macintosh Classic 的客户,Flash Player 7 可通过安全修补程序进行更新。在发布 Flash Player 9 之前,它还针对 Linux 和 Solaris 客户进行了更新。

如果您在最新的播放器中使用不受支持的配置,或希望继续使用 Adobe Flash Player 7,则可以在已存档的 Flash Player 版本中找到已存档的安装程序。此技术说明中的信息将继续适用于所有测试 Flash Player 7 的开发人员。

解决方案

选择适当的 Flash Player 版本

常规卸载程序 (uninstall_flash_player.exe) 用于与新的版本检查逻辑配合使用,您可以使用它从系统中删除 Flash Player。(卸载 Flash Player | Windows 中提供了此卸载程序。)此卸载程序是一个通用的卸载程序,您可以使用它删除任何版本的 Flash Player。如果您要从较新版本的 Flash Player 转换为较旧版本,Adobe 建议您先完全删除新版本,然后再安装旧版本。

安装以前版本的 Flash Player 可能会失败

如果您之前安装了一个适用于 Internet Explorer 的新版 Flash Player,您可能无法安装旧版本。例如,如果您安装了 Flash Player 9.0.47.0,而又尝试安装版本 9.0.45.0,则安装会失败。如果安装失败,请按照安装以前版本的 Flash Player | Internet Explorer | Windows 中的说明进行操作。

注意在对 Windows Vista 进行测试时,支持的最低播放器版本为 9.0.28.0。如果您使用 Windows Vista 并装有更低版本的播放器,请更新该播放器。

Flash Player 10.1 或更高版本


随着 Flash Player 10.1 (Argo) 的发布,命令行参数发生了显著更改。使用独立卸载程序的用户不再需要使用 -clean/-force 参数对 Flash Player 强制执行完全卸载。但是,当使用 FlashUtil.exe 进行卸载时,用户仍需要使用 -force 参数执行完全卸载。

注意:下面列出的参数仅适用于 EXE 安装程序,而不适用于 MSI 安装程序。

新的命令行参数包括:

  • -install:执行 Flash Player 的无提示安装。
  • -uninstall:执行 Flash Player 的无提示卸载。
    • 注意:这些参数可用于独立卸载程序,或用于 \Macromed\Flash 目录中的 FlashUtil.exe。
  • -uninstall {activex | plugin}:执行特定播放器的卸载:ActiveX (Internet Explorer) 或插件(其他浏览器)。
    • 注意:此参数可用于独立卸载程序,也可用于 \Macromed\Flash 目录中的 FlashUtil.exe。
    • 注意:在卸载特定的播放器时,请将特定的播放器类型与无提示 -uninstall 参数结合使用。否则,它将不起作用,并且两个播放器类型都将被卸载。

Flash Player 9.0.28.0 至 10.0.45.0

 

实用工具文件 FlashUtil.exe 随 Flash Player 9.0.28.0 至 10.0.45.0 (Coral) 一起安装在 C:\Windows\system32\Macromed\Flash 目录中。FlashUtil.exe 包含 Windows Vista 和自动更新通知程序所需的功能。以前的实用工具 (UninstFl.exe) 不再是 Flash Player 所必需的,也不再随 Flash Player 一起安装。

此实用工具的版本由控件决定。例如,FlashUtil9b.exe 随控件 Flash9b.ocx 一起安装。FlashUtil.exe 还包含几个可供开发人员用来在测试期间切换播放器和调试器版本的选项。开发人员可使用以下命令行标志修改默认行为:

USAGE: %s [-uninstallUnlock] [-uninstallLock] [-uninstallControlPath] path]

  • 如果在没有标志的情况下运行,将会显示自动更新通知对话框。
  • -uninstallUnlock:解锁控件。为 OCX 和注册表项授予写入/删除权限,但不清除文件。
  • -uninstallLock:锁定控件。拒绝写入/删除权限。
  • -uninstallControlPath path:可选;覆盖控件的默认路径。必须与其他某个标志一起使用。如果忽略,则路径的位置基于注册表信息而定。

默认路径位于以下注册表项中:

HKCR\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InProcServer32

例如,C:\Windows\system32\Macromed\Flash\Flash8b.ocx

示例情况对 FlashUtil*.exe 与锁定控件的结合使用进行了最佳描述。在开发和测试内容时,您需要检查它在 Flash Player 8 和 Flash Player 9 中的播放情况。您将 8.0.24.0 和 9.0.28.0 控件的副本分别保存在名称不同的目录中。版本 9.0.28.0 是当前注册的控件,您需要切换到版本 8。

首先,解锁注册的控件而不要删除它,以便您能够在以后切换回该控件:

FlashUtil9b.exe -uninstallUnlock c:\WINDOWS\System32\Macromed\Flash\Flash9b.ocx

然后,注册版本 8 控件:

regsvr32.exe c:\windows\system32\Macromed\Flash\Flash8b.ocx

现在,版本 8 是当前注册的 Flash Player。锁定控件包含用于锁定控件的自注册代码。

Flash Player 9.0.16.0 或更低版本

 

某些版本低于 9.0.28.0 的 Flash Player 随卸载程序 UninstFl.exe 一起安装,该卸载程序位于 C:\Windows\system32\Macromed\Flash 目录中。

版本 包括 UninstFl.exe

Flash Player 7

7.0.63.0、7.0.68.0 及更高版本

Flash Player 8

8.0.24.0、8.0.33.0 及更高版本

Flash Player 9

9.0.16.0

UninstFl.exe 的默认行为是提示用户、解锁控件、取消注册控件,然后删除 OCX、GetFlash.exe 和 GetFlash.exe.manifest。UninstFl.exe 不会删除自身,且无法删除正在使用中的文件。UninstFl.exe 仅对新的锁定控件有效。旧控件不包含用于锁定或解锁文件的注册逻辑,因此 UninstFl.exe 无法识别这些旧控件以将其删除。在对旧控件运行时,GetFlash.exe 和 GetFlash.exe.manifest 会被删除,但控件仍将保留。要确保完全删除 Flash Player,请运行常规卸载程序 uninstall_flash_player.exe。(卸载 Flash Player | Windows 中提供了此卸载程序。)

UninstFl.exe 还包含几个可供开发人员用来在测试期间切换播放器版本的选项。开发人员可使用以下命令行标志修改默认行为:

USAGE: %s [-quiet] [-unlock] [-lock] [filename]

在标志中,只有第一个字符才是相关的。

  • -q:禁止提示。
  • -u:解锁;为 OCX 和注册表项授予写入/删除权限,但不清除文件。
  • -l:锁定;拒绝写入/删除权限。
  • Filename:覆盖默认路径。默认路径位于以下注册表项中:HKCR\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InProcServer32。例如:C:\Windows\system32\Macromed\Flash\Flash85.ocx

示例情况对 UninstFl.exe 与锁定控件的结合使用进行了最佳描述。在开发和测试内容时,请检查它在 Flash Player 7 和 Flash Player 8 中的播放情况。您将 7.0.63.0 和 8.0.24.0 控件的副本分别保存在名称不同的目录中。版本 8 是当前注册的控件,您需要切换到版本 7。

首先,解锁注册的控件而不要删除它,以便您能够在以后切换回该控件:

UninstFl.exe -u c:\windows\system32\Macromed\Flash\Flash8.ocx

然后,注册版本 7 控件:

regsvr32.exe c:\windows\system32\Macromed\Flash\Flash.ocx

现在,版本 7 是当前注册的 Flash Player。锁定控件包含用于锁定控件的自注册代码。

其他信息

Flash Player 7 (7.0.63.0) 和 Flash Player 8 (8.0.24.0) 的更新包含安全增强功能,并且还引入了对安装过程的额外版本检查。由于旧版安装程序和控件不包含新的版本检查逻辑,因此 Flash Player 控件在安装后会被锁定。从该更新开始,来自 Adobe 的安装程序和卸载程序将全力配合此次更改。这不会影响用户安装体验。Flash 和 Flex 开发人员有时会发现需要对他们在测试期间切换播放器版本的常规方法稍作修改,以配合此次更改。

常见安装问题

症状 诊断和解决方案

尝试手动删除注册的控件或删除 Macromed\Flash 文件夹失败。

诊断:当前注册的控件已锁定,无法手动删除。

解决方案:运行常规卸载程序以删除所有文件,或者运行 uninstfl.exe -uFlashUtil.exe -uninstallUnlock 以解锁注册的控件,然后手动删除。

尝试更改注册控件的文件名失败。

诊断:当前注册的控件已锁定,尝试在未解锁文件的情况下重命名控件会失败。

解决方案:运行 uninstfl.exe -uFlashUtil.exe -uninstallUnlock 以解锁控件,然后重命名文件。

对 flash*.ocx 文件运行 regsvr32 会返回以下错误消息:

诊断:当前注册的控件已锁定,尝试在未解锁注册播放器的情况下注册其他版本的播放器会失败。

解决方案:对当前注册的控件运行 uninstfl.exe -uFlashUtil.exe -uninstallUnlock,以对其进行解锁。然后,对所需版本的 Flash Player 控件运行 regsvr32 以进行注册。

 

 

 

关键字:更新; 支持策略; 修补程序; 疑难解答; 4da116d3

本产品经 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 许可  Twitter™ 与 Facebook 中的内容不在 Creative Commons 的条款约束之下。

法律声明   |   在线隐私策略