2008-09-16 48 views
10

Làm cách nào để tìm ra tệp âm thanh nào người dùng đã định cấu hình trong bảng điều khiển?Làm cách nào để phát âm thanh cửa sổ chuẩn?

Ví dụ: Tôi muốn phát âm thanh cho "Đã kết nối thiết bị".

API nào có thể được sử dụng để truy vấn cài đặt âm thanh bảng điều khiển?

Tôi thấy rằng có một số mục nhập tùy chỉnh được thực hiện bởi các chương trình của bên thứ ba trong hộp thoại bảng điều khiển, vì vậy phải có cách để các chương trình này liên lạc với cài đặt âm thanh chung.

Chỉnh sửa: Cảm ơn bạn. Tôi không biết rằng PlaySound cũng chỉ phát tệp âm thanh thích hợp khi chỉ định tên của mục nhập registry.

Để chơi "Thiết bị conntected" âm thanh:

::PlaySound(TEXT("DeviceConnect"), NULL, SND_ALIAS|SND_ASYNC); 
+0

Bạn đã tìm thấy tên bí danh thích hợp của âm thanh ở đâu? Tôi đang tìm kiếm ví dụ cho âm thanh "sms nhận được". – Sam

+0

Tôi tìm thấy một danh sách trong sổ đăng ký tại HKEY_CURRENT_USER \ AppEvents \ EventLabels. – Timbo

Trả lời

12

Không phải Win32, nhưng đối với .net anyway, bạn có thể thực hiện việc này bằng cách sử dụng các mục sau trong C#:

System.Media.SystemSounds.Asterisk.Play(); 
// Plays the Asterisk sound (used for Information (i)) 
// Also available: 
// Exclamation (Warning /!\) 
// Hand (aka Critical Stop - Error (X)) 
// Question (?) 
// Beep (aka Default Beep) 
+3

Âm thanh của hệ thống khác như "Thiết bị được kết nối" hoặc "thư mới" như thế nào? – Anthony

+0

@Anthony Tôi không nghĩ bạn có thể làm điều đó bên trong .net. Bạn sẽ cần phải sử dụng P/Invoke cho điều đó. – Nidonocu

Các vấn đề liên quan