Карта сайтаСсылкиКонтакты

Перечисление и проигрывание системных звуков Windows

PDF Печать
Статьи

Чтобы проиграть системный звук (Вопрос или Восклицание, как называется в MS), Вы можете вызвать функцию API PlaySound, доступную в модуле mmsystem.

Функция PlaySound проигрывает звук, указанный именем файла, ресурсом или системным событием. Системные события связаны со звуком в системном реестре.

Список системных звуков

Зарегистрированные системные звуки расположены под ключом AppEvents\Apps в HKEY_CURRENT_USER в базе данных системного реестра.

Вот пример проигрывания системных звуков:


uses MMSystem, ...

PlaySound('SystemQuestion', 0, SND_ALIAS or SND_ASYNC) ;

Обратите внимание: Испольование SND_ASYNC указывает, что звук должен проигрываться асинхронно и возвращается из PlaySound немедленно после начала воспроизведения. SND_ALIAS сообщает функции PlaySound, что первый параметр является псевдонимом системного события. Фактически ссылка на звук хранится в HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default.

Список системных звуков

Теперь, когда Вы знаете, как проиграть звук, узнайте про возможность получить список всех зарегистрированных системных звуков Windows.

Поместите TButton (по имени Button1) и TListBox (по имени ListBox1) на форму (по имени SystemSoundPlayerForm). В обработчиках события формы OnCreate и кнопки OnClick введите код:


uses MMSystem, Registry, { ... }

//Button1 ... OnClikc
procedure TSystemSoundPlayerForm.Button1Click(Sender: TObject) ;
var
   soundAlias : string;
begin
   if ListBox1.ItemIndex = -1 then
   begin
     ShowMessage('Select a sound alias from the list...') ;
     Exit;
   end;

   soundAlias := ListBox1.Items[ListBox1.ItemIndex];

   PlaySound(PAnsiChar(soundAlias), 0, SND_ALIAS or SND_ASYNC) ;
end;

//SystemSoundPlayerForm ... OnCreate
procedure TSystemSoundPlayerForm.FormCreate(Sender: TObject) ;
var
   reg : TRegistry;
begin
   reg := TRegistry.Create;
   try
     reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKeyReadOnly('\AppEvents\EventLabels') ;
     reg.GetKeyNames(ListBox1.Items) ;
   finally
     reg.Free;
   end;
end;

Выберите псевдоним звука из списка и нажмите кнопку Play...


 

Добавить комментарий


Защитный код
Обновить