如何注册事件处理程序

一个设备可能会生成许多事件,每个事件可以选择由多个不同的处理程序之一进行处理。 在 Windows XP 中,定义了以下事件:

  • DeviceArrival
  • DeviceRemoval
  • MediaArrival
  • MediaRemoval

Instructions

事件处理程序在 EventHandlers 键下定义。 事件处理程序键的值是检测到事件时用户必须从中选择的每个处理程序的名称。 没有与这些条目关联的数据值。 下面是名为 MyNewRemovalEventHandler 的自定义事件处理程序的示例定义,它向用户提供这些处理程序的可能性:

  • 在名为 Contoso, Inc 的公司制造的设备上检测到事件时要使用的处理程序。
  • 在名为 Fabrikam, Inc 的公司制造的设备上检测到事件时要使用的处理程序。
  • 要用于所有其他情况的处理程序。
HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  AutoplayHandlers
                     EventHandlers
                        MyNewRemovalEventHandler
                           CompanyContosoHandler [REG_SZ]
                           CompanyFabrikamHandler [REG_SZ]
                           MyRemovalHandler [REG_SZ]

定义事件处理程序后,必须为以下事件之一的设备处理程序注册该事件处理程序:DeviceArrival、DeviceRemoval、MediaArrival 或 MediaRemoval。 前面定义的 MyNewRemovalEventHandler 用于名为 MyDeviceHandler 的自定义设备处理程序下的 DeviceRemoval,并在以下示例中为此进行了定义。 同样,注册表值没有数据组件。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  AutoplayHandlers
                     DeviceHandlers
                        EventHandlers
                           DeviceRemoval
                              MyNewRemovalEventHandler

Windows XP 预定义以下 EventHandler 集。

EventHandlers 密钥 媒体或文件类型
HandleCDBurningOnArrival 空白 CD-R/CD-RW
ShowPicturesOnArrival 图片文件
PlayMusicFilesOnArrival 音乐文件
PlayVideoFilesOnArrival 视频文件
PlayCDAudioOnArrival 音频 CD (REDBOOK 格式 CD 与音频轨)
PlayDVDMovieOnArrival DVD 电影

 

除上述事件外,Windows Vista 还预定义了以下一组 EventHandler。

EventHandlers 密钥 媒体或文件类型
PlaySuperVideoCDMovieOnArrival 超级视频CD 电影
PlayVideoCDMovieOnArrival VideoCD 电影