ارسال شده در تاریخ مهر ۱۹م, ۱۳۸۸ به دست شهرام - [ 232 دیدار ]

systemsoundsبرای پخش صدای های پیش فرض ویندوز یا همان System Sound ها می توان از PlaySound که یک API تابع است استفاده کرد. البته جهت استفاده از این تابع باید mmsystem را Use کرده باشید.

ویندوز اطلاعات مربوط به این صداها را در رجیستری خود نگهداری می کند. دقیقا در آدرس “AppEvents\Apps” از “HKEY_CURRENT_USER”.

جهت پخش کردن صدای… مثلا System Question می تونید به شکل زیر عمل کنید:

  1. PlaySound('SystemQuestion', 0, SND_ALIAS or SND_ASYNC)

البته توجه داشته باشید که حتما باید یونیت mmsystem را Use کرده باشید.

در ادامه مطلب، نمونه برنامه ای آماده کرده ام که می تونید از آن به عنوان یک مثال استفاده کنید.

در مرحله اول، ما لیست تمامی صداهای پیش فرض ویندوز را در یک ListBox ذخیره می کنیم. این کار را زمانی انجام می دهیم که فرم در حال ساختن است:

  1. procedure TForm1.FormCreate(Sender: TObject) ;
  2. var
  3. reg : TRegistry;
  4. begin
  5. reg := TRegistry.Create;
  6. try
  7. reg.RootKey := HKEY_CURRENT_USER;
  8. reg.OpenKeyReadOnly('\AppEvents\EventLabels') ;
  9. reg.GetKeyNames(ListBox1.Items) ;
  10. finally
  11. reg.Free;
  12. end;
  13. end;

در مرحله دوم، با کلیک بر روی دکمه پخش، صدای مورد را پخش خواهیم کرد:

  1. procedure TForm1.Button1Click(Sender: TObject) ;
  2. var
  3. soundAlias : string;
  4. begin
  5. if ListBox1.ItemIndex = -1 then
  6. begin
  7. ShowMessage('Select a sound alias from the list…') ;
  8. Exit;
  9. end;
  10. soundAlias := ListBox1.Items[ListBox1.ItemIndex];
  11. PlaySound(PAnsiChar(soundAlias), 0, SND_ALIAS or SND_ASYNC) ;
  12. end;

دریافت نمونه

۱ امتیاز۲ امتیاز۳ امتیاز۴ امتیاز۵ امتیاز (1 رای​، میانگین: 4.00 از 5)
بارگذاری ... بارگذاری ...
ارسال پاسخ