برای پخش صدای های پیش فرض ویندوز یا همان System Sound ها می توان از PlaySound که یک API تابع است استفاده کرد. البته جهت استفاده از این تابع باید mmsystem را Use کرده باشید.
ویندوز اطلاعات مربوط به این صداها را در رجیستری خود نگهداری می کند. دقیقا در آدرس “AppEvents\Apps” از “HKEY_CURRENT_USER”.
جهت پخش کردن صدای… مثلا System Question می تونید به شکل زیر عمل کنید:
- PlaySound('SystemQuestion', 0, SND_ALIAS or SND_ASYNC)
البته توجه داشته باشید که حتما باید یونیت mmsystem را Use کرده باشید.
در ادامه مطلب، نمونه برنامه ای آماده کرده ام که می تونید از آن به عنوان یک مثال استفاده کنید.
در مرحله اول، ما لیست تمامی صداهای پیش فرض ویندوز را در یک ListBox ذخیره می کنیم. این کار را زمانی انجام می دهیم که فرم در حال ساختن است:
- procedure TForm1.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;
در مرحله دوم، با کلیک بر روی دکمه پخش، صدای مورد را پخش خواهیم کرد:
- procedure TForm1.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;

(1 رای، میانگین: 4.00 از 5)