ايران ويج

نسخه‌ی کامل: صدای خطای ها در وی بی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
چگونه ميشه در وبي صداي يک پيغام خطا را که در اورد مثلا وقتي روي يک دکمه کليد کرديم صداي خطايي که در که با دستور msgbox مي دهد در اورد
اين کار را براي اين مي خواهم چون برنامه کاملا فارسي بوده مجبور به جاي دستور Msgbox خودم فرم هايي تهييه کنم که کليد هاي انها مثلا به جاي Yes بله باشد
ولي به يک مشکلي بر مي خورم که ديگه اون فرم ها صداي خطا يا صداي پيغام اطلاعات را نمي ده
خوب بايد اون صداي مورد تظرت كه همش هم توي ويندوز هستش رو توليد كني براي توليد صدا هم ميتوني از اي پي اي
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
استفاده كني و اين طوري هم صداش بزني
sndPlaySound snd, SND_ASYNC Or SND_NODEFAULT
sndمسير و نام فايل صداي مورد نظر است
دوست عزیز لطف کنید دقیقا کد کاملش را در برنامه بنویس چون من در مورد توابع ای پی آی هیچی نمی دانم
بعد من فقط صدای پیغام خطا را نمی خواهم بالکه صدای تمام پیغام های MsgBox را می خواهم زحمتش را بکشید
باز هم دوست عزیز تشکر
سلام

کد:
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Private Sub Command1_Click()
sndPlaySound 1, SND_ASYNC Or SND_NODEFAULT
End Sub
دوست عزیز تا اینجاشو که خودم هم یک جور هایی باد بودم(روی یک برنامه دیگه دیده بودم)
خوب این تابع مال پخش فایل های صوتی هستش ولی چه طوری میشه صدا های MsgBox , vbCriticalوvbExclamationوvbInformation را در اورد
از کمک هر دو شما دوستان عزیزم ممنونم ولی هیچ کدام منظور من را متوجه نشدین باز هم اگه متوجه نشدین بگویید توضیح بدهم
توي windows\media همه این صداها وجود داره مثلا windows xp exclamation همون صدای msgboxexclamation هست خود ویندوز هم از همین فایلای صوتی استفاده میکنه تو هم میتونی با دادن مسیر به همون تابعی که قتلا برات گفتم اول اون صدا رو تولید کنی بعدهم مسیج باکستو نشون بدی برای اینکه همه جا هم کار کنه یه ای پی ای هست که مسیر ویندوزو بهت میده اصلا ولش کن کدای زیر رو توی یه فرم بچسبون بعد اجراش کن تا بفهمی
کد:
Private Const SND_ALIAS = &H10000
Private Const SND_ASYNC = &H1
Private Const SND_FILENAME = &H20000
Private Const SND_LOOP = &H8
Private Const SND_NODEFAULT = &H2
Private Const SND_NOSTOP = &H10
Private Const SND_NOWAIT = &H2000
Private Const SND_SYNC = &H0
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long _
) As Long

Private Sub Form_Load()
  windir = String(200, 0)
  GetWindowsDirectory windir, Len(windir)
  windir = Left$(windir, InStr(1, windir, Chr$(0)) - 1)
  sndPlaySound windir + "\media\Windows XP Startup.wav", SND_ASYNC Or SND_NODEFAULT
End Sub
اينم يه روش ديگه براي توليد كردن فقط صداي مسيجها
يه كامند و يه تكست بذار رو فرمت و اعداد 0 تا 4 هر دفعه يكي رو تور تكست وارد كن و كامند و كليك كن
کد:
Private Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
    Private Const MB_ICONASTERISK = &H40&
    Private Const MB_ICONEXCLAMATION = &H30&
    Private Const MB_ICONHAND = &H10&
    Private Const MB_ICONINFORMATION = MB_ICONASTERISK
    Private Const MB_ICONSTOP = MB_ICONHAND
    Private Const MB_ICONQUESTION = &H20&
    Private Const MB_OK = &H0&
    
    Private Sub Command1_Click()
    Dim BeepType As Long, RtnValue As Long
    Select Case Val(Text1.Text)
    Case 0
    BeepType = MB_OK
    Case 1
    BeepType = MB_ICONINFORMATION
    Case 2
    BeepType = MB_ICONEXCLAMATION
    Case 3
    BeepType = MB_ICONQUESTION
    Case 4
    BeepType = MB_ICONSTOP
    End Select
     MessageBeep BeepType
    End Sub
ممنون از كممكتون
ولي خود ويندوز براي صداي پيغام MsgBox از چراهي استفاده ميكنه؟
m-m نوشته است:ممنون از كممكتون
ولي خود ويندوز براي صداي پيغام MsgBox از چراهي استفاده ميكنه؟
من توي اين سايت اينطور چيزي ديدم :http://www.microsoft.com :wink: