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

Зарегистрированные системные звуки расположены под ключом 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...
Комментарии