创建已启用 AutoRun 的应用程序

创建启用 AutoRun 的应用程序的过程非常简单。 本主题以 CD-ROM 为例(这是实现这项技术的第一种媒体),但目前有许多不同的媒体类型可以使用它。

若要在应用程序中启用 AutoRun,只需包含两个基本文件:

  • Autorun.inf 文件
  • 启动应用程序

当用户在与 AutoRun 兼容的计算机上将光盘插入 CD-ROM 驱动器时,系统会立即检查光盘是否具有个人计算机文件系统。 如果这样做,系统会搜索名为 Autorun.inf 的文件。 此文件指定将运行的设置应用程序以及各种可选设置。 启动应用程序通常安装、卸载、配置和运行应用程序。

创建 Autorun.inf 文件

Autorun.inf 是一个文本文件,位于包含应用程序的 CD-ROM 的根目录中。 其主要功能是向系统提供应用程序启动程序的名称和位置,该启动程序将在插入光盘时运行。

注意

对于从 GetDriveType 返回DRIVE_REMOVABLE的驱动器,Windows XP 下不支持 Autorun.inf 文件。

 

Autorun.inf 文件还可以包含可选信息,包括:

  • 包含表示应用程序的 CD-ROM 驱动器的图标的文件的名称。 Windows 资源管理器将显示此图标,以取代标准驱动器图标。
  • 当用户右键单击 CD-ROM 图标时显示的快捷菜单的其他命令。 还可以指定在用户双击图标时运行的默认命令。

Autorun.inf 文件类似于.ini文件。 它们由一个或多个部分组成,每个部分由括在方括号中的名称组成。 每个部分都包含一系列命令,这些命令将在插入光盘时由 Shell 运行。 目前为 Autorun.inf 文件定义了两个部分。

  • [autorun] 节包含默认的 AutoRun 命令。 所有 Autorun.inf 文件都必须具有 [autorun] 节。
  • 对于基于 RISC 的计算机上运行的系统,可以包含可选的 [autorun.alpha] 节。 当光盘插入到基于 RISC 的系统上的 CD-ROM 驱动器中时,Shell 将在本节中运行命令,而不是 [自动运行] 部分中的命令。

注意

Shell 首先检查特定于体系结构的部分。 如果找不到一个,它将使用 [autorun] 节中的信息。 Shell 找到一个分区后,它会忽略所有其他部分,因此每个节都必须是自包含的。

 

每个部分都包含一系列命令,用于确定自动运行操作的发生方式。 有五个命令可用。

命令 说明
defaulticon 指定应用程序的默认图标。
图标 指定 CD-ROM 驱动器的应用程序特定图标的路径和文件名。
open 指定启动应用程序的路径和文件名。
useautorun 指定应使用自动播放 V2 功能(如果受支持)。
shell 在 CD-ROM 的快捷菜单中定义默认命令。
shell_verb 将命令添加到 CD-ROM 的快捷菜单。

 

下面是一个简单的 Autorun.inf 文件的示例。 它指定Filename.exe作为启动应用程序。 Filename.exe中的第二个图标将表示 CD-ROM 驱动器,而不是标准驱动器图标。

[autorun] 
open=Filename.exe 
icon=Filename.exe,1

此 Autorun.inf 示例根据计算机类型运行不同的启动应用程序。

[autorun] 
open=Filename_x86.exe 
icon=IconFile.ico 

[autorun.alpha] 
open=Filename_RISC.exe 
icon=IconFile.ico

[DeviceInstall] 节

可以在任何可移动媒体上使用 [DeviceInstall] 部分。 它仅在 Windows XP 下受支持。 使用 DriverPath 指定 Windows XP 在其中搜索驱动程序文件的目录路径,从而阻止长时间搜索整个内容。

[DeviceInstall] 部分与驱动程序安装配合使用,以指定 Windows XP 应在媒体中搜索驱动程序文件的目录。 在 Windows XP 下,默认情况下不再搜索整个媒体,因此需要 [DeviceInstall] 指定搜索位置。 以下是 Windows XP 在 Autorun.inf 文件中没有 [DeviceInstall] 节的情况下完全搜索的唯一可移动媒体。

  • 在驱动器 A 或 B 中找到的软盘。
  • CD/DVD 介质的大小小于 1 GB(GB)。

所有其他媒体都必须包含 Windows XP 的 [DeviceInstall] 部分,才能检测该媒体上存储的任何驱动程序。

注意

[AutoRun] 部分一样, [DeviceInstall] 部分可以特定于体系结构。

 

如何实现自动运行启动应用程序

编写设备安装应用程序