如何注册事件处理程序

设备可能会生成许多事件,并且每个事件可以选择由多个不同的处理程序之一进行处理。 在 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 预定义了以下一组 EventHandlers。

EventHandlers 键 媒体或文件类型
HandleCDBurningOnArrival 空白 CD-R/CD-RW
ShowPicturesOnArrival 图片文件
PlayMusicFilesOnArrival 音乐文件
PlayVideoFilesOnArrival 视频文件
PlayCDAudioOnArrival 音频 CD (REDBOOK 格式 CD,其中包含音频曲目)
PlayDVDMovieOnArrival DVD 电影

 

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

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