Проигрывание системных звуков 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...
Комментарии