تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] استفسار :- بخصوص ارسال Beep
#1
السلام عليكم ورحمة الله

هذا برنامج يقوم بارسال صوت المورس عن طريق
Soundcard (DirectX7)

Simple Morse Encoder

البرنامج ب vb6

قمت بتحويله الى 
vb.net


.zip   Dx.zip (الحجم : 701.34 ك ب / التحميلات : 27)

ولكن واجهتني مشكله عدم الارسال


   

اذا لا يوجد مجال ان يعمل على
vb.net
هل هناك طريقه لتشغيل
vb6

في vb.net

بعد التحويل الى 
.exe


ان شاءالله احصل الحل بارك الله فيكم
الرد }}
تم الشكر بواسطة:
#2
PHP كود :
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
    Dim s 
As String "dubai.eig"
 
   For Each c As Char In s.ToCharArray
        cmorse
(c)
 
   Next
End Sub


Function cmorse(As Char) As String
    c 
c.ToString.ToLower
    Dim fr 
As Integer 1800 REM الموجة الصوتية
    Dim sd 
As Integer 240 REM الاشارة القصيرة
    Dim ld 
As Integer sd 3  REM الاشارة الطويلة
    Dim ret 
As String String.Empty
 
   Dim codes(,) As String = {
 
       {" "" "}, {"a"".-"}, {"b""-..."}, {"c""-.-."}, {"d""-.."},
 
       {"e""."}, {"f""..-."}, {"g""--."}, {"h""...."}, {"i"".."},
 
       {"j"".---"}, {"k""-.-"}, {"l"".-.."}, {"m""--"}, {"n""-."},
 
       {"o""---"}, {"p"".--."}, {"q""--.-"}, {"r"".-."}, {"s""..."},
 
       {"t""-"}, {"u""..-"}, {"v""...-"}, {"w"".--"}, {"x""-..-"},
 
       {"y""-.--"}, {"z""--.."}, {"1"".----"}, {"2""..---"},
 
       {"3""...--"}, {"4""....-"}, {"5""....."}, {"6""-...."},
 
       {"7""--..."}, {"8""---.."}, {"9""----."}, {"0""-----"},
 
       {"."".-.-.-"}, {"?""..--.."}, {",""--..--"}, {"'"".----."},
 
       {"."".-.-.-"}, {",""--..--"}, {"?""..--.."}, {"/""-..-."},
 
       {"=""-...-"}, {"+"".-.-."}, {"*""...-."}}
 
   For i As Integer 0 To codes.GetUpperBound(0)
 
       If codes(i0) = c Then ret codes(i1) : Exit For
 
   Next
    If ret 
" " Then
        Threading
.Thread.Sleep(ld 7)
 
       Return ret
    End 
If
 
   For i 0 To ret.Length 1
        If ret
(i) = "." Then
            Console
.Beep(frsd)
 
       Else
            Console
.Beep(frld)
 
       End If
 
       If i ret.Length 1 Then
            Threading
.Thread.Sleep(sd)
 
       End If
 
   Next
    Threading
.Thread.Sleep(ld)

 
   Return ret
End 
Function 
الرد }}
تم الشكر بواسطة: elgokr , dubai.eig
#3
(26-07-18, 07:10 PM)Done كتب :
PHP كود :
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
    Dim s 
As String "dubai.eig"
 
   For Each c As Char In s.ToCharArray
        cmorse
(c)
 
   Next
End Sub


Function cmorse(As Char) As String
    c 
c.ToString.ToLower
    Dim fr 
As Integer 1800 REM الموجة الصوتية
    Dim sd 
As Integer 240 REM الاشارة القصيرة
    Dim ld 
As Integer sd 3  REM الاشارة الطويلة
    Dim ret 
As String String.Empty
 
   Dim codes(,) As String = {
 
       {" "" "}, {"a"".-"}, {"b""-..."}, {"c""-.-."}, {"d""-.."},
 
       {"e""."}, {"f""..-."}, {"g""--."}, {"h""...."}, {"i"".."},
 
       {"j"".---"}, {"k""-.-"}, {"l"".-.."}, {"m""--"}, {"n""-."},
 
       {"o""---"}, {"p"".--."}, {"q""--.-"}, {"r"".-."}, {"s""..."},
 
       {"t""-"}, {"u""..-"}, {"v""...-"}, {"w"".--"}, {"x""-..-"},
 
       {"y""-.--"}, {"z""--.."}, {"1"".----"}, {"2""..---"},
 
       {"3""...--"}, {"4""....-"}, {"5""....."}, {"6""-...."},
 
       {"7""--..."}, {"8""---.."}, {"9""----."}, {"0""-----"},
 
       {"."".-.-.-"}, {"?""..--.."}, {",""--..--"}, {"'"".----."},
 
       {"."".-.-.-"}, {",""--..--"}, {"?""..--.."}, {"/""-..-."},
 
       {"=""-...-"}, {"+"".-.-."}, {"*""...-."}}
 
   For i As Integer 0 To codes.GetUpperBound(0)
 
       If codes(i0) = c Then ret codes(i1) : Exit For
 
   Next
    If ret 
" " Then
        Threading
.Thread.Sleep(ld 7)
 
       Return ret
    End 
If
 
   For i 0 To ret.Length 1
        If ret
(i) = "." Then
            Console
.Beep(frsd)
 
       Else
            Console
.Beep(frld)
 
       End If
 
       If i ret.Length 1 Then
            Threading
.Thread.Sleep(sd)
 
       End If
 
   Next
    Threading
.Thread.Sleep(ld)

 
   Return ret
End 
Function 



شكرا لك

بس عندما اضغط على Button1

لا يعمل شي  بارك الله فيك لو تتاكد من الكود وشكرا من جديد لك
الرد }}
تم الشكر بواسطة: Done , Done
#4
(26-07-18, 01:10 PM)dubai.eig كتب : السلام عليكم ورحمة الله

هذا برنامج يقوم بارسال صوت المورس عن طريق
Soundcard (DirectX7)

Simple Morse Encoder

البرنامج ب vb6

قمت بتحويله الى 
vb.net



ولكن واجهتني مشكله عدم الارسال




اذا لا يوجد مجال ان يعمل على
vb.net
هل هناك طريقه لتشغيل
vb6

في vb.net

بعد التحويل الى 
.exe


ان شاءالله احصل الحل بارك الله فيكم


امر تحويل السورس من 6 الى .net الامر سهل وبسيط 
ويمكنك فعل ذلك بدون ان تقوم بنت بكتابة كود

ولكن يوجد نقطة واحدة هنا وهى المشكلة
ان الجهاز يجب ان يتوفر عليه الاصدار 7 من DirectX

وللاسف هذا الاصدار يعمل على الاصدارات القديمة حتى النسخة 2000
فعند محاولة حتى تشغيل المشروع لاستخراج الملف أو محاولة التعامل مع الكود
ستجد ان كل شي يعمل معك الا بعض النقاط التى تتعامل مع DirectX7

فانا راجعت السورس الخاص بك بعد تحويلك
وهو محول بنسبة 98% تقريباً


وقمت بمراجعة ايضاً مصدر السورس للاصدار 6

على اى حال لتتمكن من تحويل البيئة 6 الى .Net
راجع هذا الفيديو وتذكر ان يجب ان يكون بالجهاز DirectX7


تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}
تم الشكر بواسطة: dubai.eig
#5
(27-07-18, 04:28 AM)elgokr كتب :
(26-07-18, 01:10 PM)dubai.eig كتب : السلام عليكم ورحمة الله

هذا برنامج يقوم بارسال صوت المورس عن طريق
Soundcard (DirectX7)

Simple Morse Encoder

البرنامج ب vb6

قمت بتحويله الى 
vb.net



ولكن واجهتني مشكله عدم الارسال




اذا لا يوجد مجال ان يعمل على
vb.net
هل هناك طريقه لتشغيل
vb6

في vb.net

بعد التحويل الى 
.exe


ان شاءالله احصل الحل بارك الله فيكم


امر تحويل السورس من 6 الى .net الامر سهل وبسيط 
ويمكنك فعل ذلك بدون ان تقوم بنت بكتابة كود

ولكن يوجد نقطة واحدة هنا وهى المشكلة
ان الجهاز يجب ان يتوفر عليه الاصدار 7 من DirectX

وللاسف هذا الاصدار يعمل على الاصدارات القديمة حتى النسخة 2000
فعند محاولة حتى تشغيل المشروع لاستخراج الملف أو محاولة التعامل مع الكود
ستجد ان كل شي يعمل معك الا بعض النقاط التى تتعامل مع DirectX7

فانا راجعت السورس الخاص بك بعد تحويلك
وهو محول بنسبة 98% تقريباً


وقمت بمراجعة ايضاً مصدر السورس للاصدار 6

على اى حال لتتمكن من تحويل البيئة 6 الى .Net
راجع هذا الفيديو وتذكر ان يجب ان يكون بالجهاز DirectX7


تحياتى لك
وتمنياتى لك التوفيق

شكرا لك على المعلومه 

بس هل في مجال تغيير اصدار DirectX ليشتغل او لا




مع عملية البحث التي قمت بها لاحظة ان هناك مكتبه اخرى تدعم التعامل مع vb.net

وهيه
SlimDX 

https://stackoverflow.com/questions/2006719/directx-with-vb-net

بس ما عرفت كيف اتعامل معاها

https://www.dreamincode.net/forums/topic...ge__st__20

https://www.dreamincode.net/forums/topic...ge__st__15
الرد }}
تم الشكر بواسطة:
#6
https://www.dreamincode.net/forums/topic...ge__st__20

https://www.dreamincode.net/forums/topic...ge__st__15
الرد }}
تم الشكر بواسطة:
#7
شفرة vb.net
انسخ الشفرة التالية لكلاس التطبيقform1
كود :
Option Strict On
Option Explicit On
Imports SlimDX
Imports SlimDX.XAudio2
Imports SlimDX.Multimedia
Public Class Form1
    Private Const numTones As Integer = 7
    Private Shared s_rand As New Random
    Private xaudio2 As XAudio2
    Private masteringVoice As MasteringVoice
    Private tones(numTones - 1) As TonePlayer
    Private octave() As Double = {220.0, 246.94, 261.63, 293.66, 329.63, 349.23, 392.0}
    Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
        xaudio2 = New XAudio2
        masteringVoice = New MasteringVoice(xaudio2)
        For i As Integer = 0 To numTones - 1
            Dim cb As New CheckBox With {.Left = 5, .Top = 5 + (i * 30)}
            cb.Tag = i
            cb.Text = octave(i).ToString("n2")
            Me.Controls.Add(cb)
            AddHandler cb.CheckedChanged, AddressOf Check_Changed
            tones(i) = New TonePlayer(xaudio2, masteringVoice, octave(i))
        Next
    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        For Each tone As TonePlayer In tones
            tone.Dispose()
        Next
        If masteringVoice IsNot Nothing Then masteringVoice.Dispose()
        If xaudio2 IsNot Nothing Then xaudio2.Dispose()
    End Sub

    Private Sub Check_Changed(ByVal sender As Object, ByVal e As EventArgs)
        Dim cb As CheckBox = DirectCast(sender, CheckBox)
        Dim index As Integer = DirectCast(cb.Tag, Integer)
        Dim tone As TonePlayer = tones(index)
        If cb.Checked Then
            tone.Start()
        Else
            tone.Stop()
        End If
    End Sub
End Class

-----------------------------------------------------
اضف كلاس جديد للمشروع و انسخ الشفرة التالية:
كود :
Imports SlimDX
Imports SlimDX.XAudio2
Imports SlimDX.Multimedia
Imports System.IO

Public Class TonePlayer
    Implements IDisposable

    Const twoPi As Double = Math.PI * 2
    Private xaudio2 As XAudio2
    Private masteringVoice As MasteringVoice
    Private pcmStream As MemoryStream
    Private audioBuffer As AudioBuffer
    Private sourceVoice As SourceVoice
    Private Shared format As WaveFormat

    Private m_isPlaying As Boolean
    Public ReadOnly Property IsPlaying() As Boolean
        Get
            Return m_isPlaying
        End Get
    End Property

    Shared Sub New()
        format = CreateWaveFormat(44100, 1, 16) ' 44.1k samples per second, mono, 16 bits per sample.
    End Sub

    Private Shared Function CreateWaveFormat(ByVal samplesPerSecond As Integer, ByVal channels As Short, ByVal bitsPerSample As Short) As WaveFormat
        Dim format As New WaveFormat
        format.FormatTag = WaveFormatTag.Pcm
        format.BitsPerSample = bitsPerSample
        format.Channels = channels
        format.SamplesPerSecond = samplesPerSecond
        format.BlockAlignment = format.Channels * format.BitsPerSample \ 8S
        format.AverageBytesPerSecond = format.SamplesPerSecond * format.BlockAlignment
        Return format
    End Function

    Public Sub New(ByVal xaudio2 As XAudio2, ByVal masteringVoice As MasteringVoice, ByVal frequency As Double)
        Me.xaudio2 = xaudio2
        Me.masteringVoice = masteringVoice
        InitializeSourceVoice(frequency)
    End Sub

    Private Sub InitializeSourceVoice(ByVal frequency As Double)
        Dim pcmBytes() As Byte = CreateSineData16Bit(format, frequency)
        pcmStream = New MemoryStream(pcmBytes)
        pcmStream.Seek(0, SeekOrigin.Begin)
        audioBuffer = New AudioBuffer
        audioBuffer.AudioData = pcmStream
        audioBuffer.AudioBytes = pcmBytes.Length
        audioBuffer.Flags = BufferFlags.EndOfStream
        audioBuffer.LoopBegin = 0
        audioBuffer.LoopLength = pcmBytes.Count \ format.BlockAlignment ' = num samples.
        audioBuffer.LoopCount = xaudio2.LoopInfinite
        sourceVoice = New SourceVoice(xaudio2, format)
        sourceVoice.SubmitSourceBuffer(audioBuffer)
    End Sub

    Private Function CreateSineData16Bit(ByVal format As WaveFormat, ByVal frequency As Double) As Byte()
        Dim samplesPerCycle As Integer = format.SamplesPerSecond \ frequency
        Dim buffer(format.BlockAlignment * samplesPerCycle - 1) As Byte ' 1 sine wave cycle only! might be too small
        Dim theta As Double = 0
        Dim thetaStep As Double = (frequency * twoPi) / format.SamplesPerSecond
        For i As Integer = 0 To buffer.Length - 1 Step format.BlockAlignment
            Dim value As Short = CType(Short.MaxValue * Math.Sin(theta), Short)
            theta += thetaStep
            Dim bytes() As Byte = BitConverter.GetBytes(value)
            For channel As Integer = 0 To format.Channels - 1
                System.Buffer.BlockCopy(bytes, 0, buffer, (channel * 2) + i, bytes.Count)
            Next
        Next
        Return buffer
    End Function

    Public Sub Start()
        If IsPlaying Then Exit Sub
        sourceVoice.Start()
        m_isPlaying = True
    End Sub

    Public Sub [Stop]()
        If IsPlaying = False Then Exit Sub
        sourceVoice.Stop()
        m_isPlaying = False
    End Sub

    Private disposedValue As Boolean = False        ' To detect redundant calls

    ' IDisposable
    Protected Overridable Sub Dispose(ByVal disposing As Boolean)
        If Not Me.disposedValue Then
            If disposing Then
                ' TODO: free other state (managed objects).
                If sourceVoice IsNot Nothing Then sourceVoice.Dispose()
                If audioBuffer IsNot Nothing Then audioBuffer.Dispose()
                If pcmStream IsNot Nothing Then pcmStream.Dispose()
            End If

            ' TODO: free your own state (unmanaged objects).
            ' TODO: set large fields to null.
        End If
        Me.disposedValue = True
    End Sub

#Region " IDisposable Support "
    ' This code added by Visual Basic to correctly implement the disposable pattern.
    Public Sub Dispose() Implements IDisposable.Dispose
        ' Do not change this code.  Put cleanup code in Dispose(ByVal disposing As Boolean) above.
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub
#End Region
End Class

سمي الكلاس المضاف
Toneplayer

---------------------------------------
اضف ملف مكتبة الربط الدينامكي
Imports SlimDX
-------------------------------
تجده في المرفقات

ثبت حزمة
diretx
تجدها هنا
http://www.mediafire.com/file/jbf8f407qs...9.msi/file


الملفات المرفقة
.zip   slimdx.zip (الحجم : 988.07 ك ب / التحميلات : 8)
هَٰٓؤُلَآءِ قَوْمُنَا ٱتَّخَذُوا۟ مِن دُونِهِۦٓ ءَالِهَةً لَّوْلَا يَأْتُونَ عَلَيْهِم بِسُلْطَٰنٍۭ بَيِّنٍ فَمَنْ أَظْلَمُ مِمَّنِ ٱفْتَرَىٰ عَلَى ٱللَّهِ كَذِبًا
الرد }}
تم الشكر بواسطة: dubai.eig , elgokr
#8
تأكد من أن صوت الجهاز ليس الصامت Mute
أو أن الصوت منخفض جدا بحيث لا تسمعه

لان كل الحلول الي وضعوها الاخوة في الموضوع تعمل لدي بصوت واضح
الرد }}
تم الشكر بواسطة: dubai.eig , dubai.eig , elgokr
#9
(28-07-18, 08:33 PM)alsouf كتب : شفرة vb.net
انسخ الشفرة التالية لكلاس التطبيقform1
كود :
Option Strict On
Option Explicit On
Imports SlimDX
Imports SlimDX.XAudio2
Imports SlimDX.Multimedia
Public Class Form1
   Private Const numTones As Integer = 7
   Private Shared s_rand As New Random
   Private xaudio2 As XAudio2
   Private masteringVoice As MasteringVoice
   Private tones(numTones - 1) As TonePlayer
   Private octave() As Double = {220.0, 246.94, 261.63, 293.66, 329.63, 349.23, 392.0}
   Sub New()
       ' This call is required by the Windows Form Designer.
       InitializeComponent()
       ' Add any initialization after the InitializeComponent() call.
       xaudio2 = New XAudio2
       masteringVoice = New MasteringVoice(xaudio2)
       For i As Integer = 0 To numTones - 1
           Dim cb As New CheckBox With {.Left = 5, .Top = 5 + (i * 30)}
           cb.Tag = i
           cb.Text = octave(i).ToString("n2")
           Me.Controls.Add(cb)
           AddHandler cb.CheckedChanged, AddressOf Check_Changed
           tones(i) = New TonePlayer(xaudio2, masteringVoice, octave(i))
       Next
   End Sub

   Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
       For Each tone As TonePlayer In tones
           tone.Dispose()
       Next
       If masteringVoice IsNot Nothing Then masteringVoice.Dispose()
       If xaudio2 IsNot Nothing Then xaudio2.Dispose()
   End Sub

   Private Sub Check_Changed(ByVal sender As Object, ByVal e As EventArgs)
       Dim cb As CheckBox = DirectCast(sender, CheckBox)
       Dim index As Integer = DirectCast(cb.Tag, Integer)
       Dim tone As TonePlayer = tones(index)
       If cb.Checked Then
           tone.Start()
       Else
           tone.Stop()
       End If
   End Sub
End Class

-----------------------------------------------------
اضف كلاس جديد للمشروع و انسخ الشفرة التالية:
كود :
Imports SlimDX
Imports SlimDX.XAudio2
Imports SlimDX.Multimedia
Imports System.IO

Public Class TonePlayer
   Implements IDisposable

   Const twoPi As Double = Math.PI * 2
   Private xaudio2 As XAudio2
   Private masteringVoice As MasteringVoice
   Private pcmStream As MemoryStream
   Private audioBuffer As AudioBuffer
   Private sourceVoice As SourceVoice
   Private Shared format As WaveFormat

   Private m_isPlaying As Boolean
   Public ReadOnly Property IsPlaying() As Boolean
       Get
           Return m_isPlaying
       End Get
   End Property

   Shared Sub New()
       format = CreateWaveFormat(44100, 1, 16) ' 44.1k samples per second, mono, 16 bits per sample.
   End Sub

   Private Shared Function CreateWaveFormat(ByVal samplesPerSecond As Integer, ByVal channels As Short, ByVal bitsPerSample As Short) As WaveFormat
       Dim format As New WaveFormat
       format.FormatTag = WaveFormatTag.Pcm
       format.BitsPerSample = bitsPerSample
       format.Channels = channels
       format.SamplesPerSecond = samplesPerSecond
       format.BlockAlignment = format.Channels * format.BitsPerSample \ 8S
       format.AverageBytesPerSecond = format.SamplesPerSecond * format.BlockAlignment
       Return format
   End Function

   Public Sub New(ByVal xaudio2 As XAudio2, ByVal masteringVoice As MasteringVoice, ByVal frequency As Double)
       Me.xaudio2 = xaudio2
       Me.masteringVoice = masteringVoice
       InitializeSourceVoice(frequency)
   End Sub

   Private Sub InitializeSourceVoice(ByVal frequency As Double)
       Dim pcmBytes() As Byte = CreateSineData16Bit(format, frequency)
       pcmStream = New MemoryStream(pcmBytes)
       pcmStream.Seek(0, SeekOrigin.Begin)
       audioBuffer = New AudioBuffer
       audioBuffer.AudioData = pcmStream
       audioBuffer.AudioBytes = pcmBytes.Length
       audioBuffer.Flags = BufferFlags.EndOfStream
       audioBuffer.LoopBegin = 0
       audioBuffer.LoopLength = pcmBytes.Count \ format.BlockAlignment ' = num samples.
       audioBuffer.LoopCount = xaudio2.LoopInfinite
       sourceVoice = New SourceVoice(xaudio2, format)
       sourceVoice.SubmitSourceBuffer(audioBuffer)
   End Sub

   Private Function CreateSineData16Bit(ByVal format As WaveFormat, ByVal frequency As Double) As Byte()
       Dim samplesPerCycle As Integer = format.SamplesPerSecond \ frequency
       Dim buffer(format.BlockAlignment * samplesPerCycle - 1) As Byte ' 1 sine wave cycle only! might be too small
       Dim theta As Double = 0
       Dim thetaStep As Double = (frequency * twoPi) / format.SamplesPerSecond
       For i As Integer = 0 To buffer.Length - 1 Step format.BlockAlignment
           Dim value As Short = CType(Short.MaxValue * Math.Sin(theta), Short)
           theta += thetaStep
           Dim bytes() As Byte = BitConverter.GetBytes(value)
           For channel As Integer = 0 To format.Channels - 1
               System.Buffer.BlockCopy(bytes, 0, buffer, (channel * 2) + i, bytes.Count)
           Next
       Next
       Return buffer
   End Function

   Public Sub Start()
       If IsPlaying Then Exit Sub
       sourceVoice.Start()
       m_isPlaying = True
   End Sub

   Public Sub [Stop]()
       If IsPlaying = False Then Exit Sub
       sourceVoice.Stop()
       m_isPlaying = False
   End Sub

   Private disposedValue As Boolean = False        ' To detect redundant calls

   ' IDisposable
   Protected Overridable Sub Dispose(ByVal disposing As Boolean)
       If Not Me.disposedValue Then
           If disposing Then
               ' TODO: free other state (managed objects).
               If sourceVoice IsNot Nothing Then sourceVoice.Dispose()
               If audioBuffer IsNot Nothing Then audioBuffer.Dispose()
               If pcmStream IsNot Nothing Then pcmStream.Dispose()
           End If

           ' TODO: free your own state (unmanaged objects).
           ' TODO: set large fields to null.
       End If
       Me.disposedValue = True
   End Sub

#Region " IDisposable Support "
   ' This code added by Visual Basic to correctly implement the disposable pattern.
   Public Sub Dispose() Implements IDisposable.Dispose
       ' Do not change this code.  Put cleanup code in Dispose(ByVal disposing As Boolean) above.
       Dispose(True)
       GC.SuppressFinalize(Me)
   End Sub
#End Region
End Class

سمي الكلاس المضاف
Toneplayer

---------------------------------------
اضف ملف مكتبة الربط الدينامكي
Imports SlimDX
-------------------------------
تجده في المرفقات

ثبت حزمة  
diretx
تجدها هنا
http://www.mediafire.com/file/jbf8f407qs...9.msi/file



تسلم استاذي الكود شغال تمام

بس اللي اريده مختلف قليل

لو في مجال نقوم بتغيير كود الاستاذ Done الي كتبت في رده فوق 
نقوم بتغييره لمكتبه 
SlimDX


كود :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
   Dim s As String = "dubai.eig"
   For Each c As Char In s.ToCharArray
       cmorse(c)
   Next
End Sub


Function cmorse(c As Char) As String
   c = c.ToString.ToLower
   Dim fr As Integer = 1800 REM الموجة الصوتية
   Dim sd As Integer = 240 REM الاشارة القصيرة
   Dim ld As Integer = sd * 3  REM الاشارة الطويلة
   Dim ret As String = String.Empty
   Dim codes(,) As String = {
       {" ", " "}, {"a", ".-"}, {"b", "-..."}, {"c", "-.-."}, {"d", "-.."},
       {"e", "."}, {"f", "..-."}, {"g", "--."}, {"h", "...."}, {"i", ".."},
       {"j", ".---"}, {"k", "-.-"}, {"l", ".-.."}, {"m", "--"}, {"n", "-."},
       {"o", "---"}, {"p", ".--."}, {"q", "--.-"}, {"r", ".-."}, {"s", "..."},
       {"t", "-"}, {"u", "..-"}, {"v", "...-"}, {"w", ".--"}, {"x", "-..-"},
       {"y", "-.--"}, {"z", "--.."}, {"1", ".----"}, {"2", "..---"},
       {"3", "...--"}, {"4", "....-"}, {"5", "....."}, {"6", "-...."},
       {"7", "--..."}, {"8", "---.."}, {"9", "----."}, {"0", "-----"},
       {".", ".-.-.-"}, {"?", "..--.."}, {",", "--..--"}, {"'", ".----."},
       {".", ".-.-.-"}, {",", "--..--"}, {"?", "..--.."}, {"/", "-..-."},
       {"=", "-...-"}, {"+", ".-.-."}, {"*", "...-."}}
   For i As Integer = 0 To codes.GetUpperBound(0)
       If codes(i, 0) = c Then ret = codes(i, 1) : Exit For
   Next
   If ret = " " Then
       Threading.Thread.Sleep(ld * 7)
       Return ret
   End If
   For i = 0 To ret.Length - 1
       If ret(i) = "." Then
           Console.Beep(fr, sd)
       Else
           Console.Beep(fr, ld)
       End If
       If i < ret.Length - 1 Then
           Threading.Thread.Sleep(sd)
       End If
   Next
   Threading.Thread.Sleep(ld)

   Return ret
End Function

(29-07-18, 10:15 AM)GameOver كتب : تأكد من أن صوت الجهاز ليس الصامت Mute
أو أن الصوت منخفض جدا بحيث لا تسمعه

لان كل الحلول الي وضعوها الاخوة في الموضوع تعمل لدي بصوت واضح

نعم صحيح كلامك الاكواد شغاله  Rolleyes بارك الله فيك
الرد }}
تم الشكر بواسطة: elgokr , elgokr
#10
المثال يعمل بكل نجاح
تاكد من الصوت في جهازك

PHP كود :
Public Class Form1
    Private Sub BtnRead_Click
(sender As System.ObjectAs System.EventArgsHandles BtnRead.Click
        Dim s 
As String
        s 
CStr(TextBox1.Text).ToLower
        For Each c 
As Char In s.ToCharArray
            cmorse
(c)
 
       Next
    End Sub
    Function cmorse
(As Char) As String
        Dim fr 
As Integer 1800 REM الموجة الصوتية
        Dim sd 
As Integer 240 REM الاشارة القصيرة
        Dim ld 
As Integer sd 3  REM الاشارة الطويلة
        Dim ret 
As String String.Empty
 
       Dim codes(,) As String = {
 
           {" "" "}, {"a"".-"}, {"b""-..."}, {"c""-.-."}, {"d""-.."},
 
           {"e""."}, {"f""..-."}, {"g""--."}, {"h""...."}, {"i"".."},
 
           {"j"".---"}, {"k""-.-"}, {"l"".-.."}, {"m""--"}, {"n""-."},
 
           {"o""---"}, {"p"".--."}, {"q""--.-"}, {"r"".-."}, {"s""..."},
 
           {"t""-"}, {"u""..-"}, {"v""...-"}, {"w"".--"}, {"x""-..-"},
 
           {"y""-.--"}, {"z""--.."}, {"1"".----"}, {"2""..---"},
 
           {"3""...--"}, {"4""....-"}, {"5""....."}, {"6""-...."},
 
           {"7""--..."}, {"8""---.."}, {"9""----."}, {"0""-----"},
 
           {"."".-.-.-"}, {"?""..--.."}, {",""--..--"}, {"'"".----."},
 
           {"."".-.-.-"}, {",""--..--"}, {"?""..--.."}, {"/""-..-."},
 
           {"=""-...-"}, {"+"".-.-."}, {"*""...-."}}
 
       For i As Integer 0 To codes.GetUpperBound(0)
 
           If codes(i0) = c Then ret codes(i1) : Exit For
 
       Next
        If ret 
" " Then
            Threading
.Thread.Sleep(ld 7)
 
           Return ret
        End 
If
 
       For i 0 To ret.Length 1
            If ret
(i) = "." Then
                Console
.Beep(frsd)
 
           Else
                Console
.Beep(frld)
 
           End If
 
           If i ret.Length 1 Then
                Threading
.Thread.Sleep(sd)
 
           End If
 
       Next
        Threading
.Thread.Sleep(ld)
 
       Return ret
    End 
Function
End Class 


الملفات المرفقة
.docx   beep.docx (الحجم : 18.17 ك ب / التحميلات : 5)
هَٰٓؤُلَآءِ قَوْمُنَا ٱتَّخَذُوا۟ مِن دُونِهِۦٓ ءَالِهَةً لَّوْلَا يَأْتُونَ عَلَيْهِم بِسُلْطَٰنٍۭ بَيِّنٍ فَمَنْ أَظْلَمُ مِمَّنِ ٱفْتَرَىٰ عَلَى ٱللَّهِ كَذِبًا
الرد }}
تم الشكر بواسطة: elgokr , dubai.eig , dubai.eig



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم