15-10-19, 04:36 AM (آخر تعديل لهذه المشاركة : 15-10-19, 04:42 PM {2} بواسطة elgokr.)
السلام عليكم ورحمة الله وبركاته
بناءاً لسؤال احد الاخوى عن كيفية عمل
برنامج يقوم بتشغيل القران الكريم عبر الانترنت
فقمت بانشاء هذا السورس بامر الله يكون متكامل لدا اى شخص يريد الاستفادة منه
البرنامج خالص بنسبة كبيرة ما يتبقي فقط هو بعض اللمسات الخفيفة فى تغيير المسميات لعض القراء
وكذلك تعريب المسميات للقراء من الكتابة الانجليزية للكتابة العربية والامر سيكون بسيطاً جداً
حيث ستجد كل ما ستحتاج اليه من اكواد فى السورس من تغيير واستبدال وتشغير وما غيرها فالسورس كامل وما الكمال الا لله
السورس تم اضافة له كلاً من
1- مكتبة HtmlAgilityPack وستجد المكتبة مرفقة بالسورس
2- مكتبة WMPLib وهى التابعة لمشغل Windows Media Player
السورس المرفق 2015
صورة للبرنامج
الادوات المستخدمة فى السورس المرفق
1- عدد 1 من اداء PictureBox
2- عدد 5 من اداء Button
3- عدد 1 من اداء TrackBar
4- عدد 1 من اداء ProgressBar
5- عدد 2 من اداء ListBox
6- عدد 1 من اداء Timer
كود السورس كاملاً
كود :
Imports HtmlAgilityPack
Imports WMPLib
Public Class Form1
Private WSite, Page, FPlay As String
Private Player As New WindowsMediaPlayer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListBox1.Items.Clear()
WSite = "https://download.quranicaudio.com/quran/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(WSite, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If Not node.InnerText = "iza3a.zip" Then
ListBox1.Items.Add(node.InnerText.Replace("/", Nothing).Replace("_", Space(1)).ToUpper())
End If
End If
Next
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
ListBox2.Items.Clear()
Page = WSite + ListBox1.SelectedItem.ToString().Replace(Space(1), "_").ToLower() + "/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(Page, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If node.InnerText.Contains(".mp3") Then
ListBox2.Items.Add(GetName_(node.InnerText.Split(".")(0)))
End If
End If
Next
End Sub
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
FPlay = Page + GetNumber_(ListBox2.SelectedItem)
Player.URL = FPlay
Player.controls.stop()
Timer1.Stop()
ProgressBar1.Value = 0
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = IIf(ListBox2.Items.Item(0) = ListBox2.SelectedItem, False, True)
Button5.Enabled = IIf(ListBox2.Items.Item(ListBox2.Items.Count - 1) = ListBox2.SelectedItem, False, True)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text = ListBox2.SelectedItem
Player.controls.play()
Timer1.Start()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Timer1.Stop()
Player.controls.pause()
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = False
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Player.controls.stop()
Timer1.Stop()
ProgressBar1.Value = 0
Player.URL.Clone()
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
ListBox2.SelectedIndex -= 1
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
ListBox2.SelectedIndex += 1
End Sub
Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Maximum = Player.currentMedia.duration
ProgressBar1.Value = Player.controls.currentPosition
If Player.controls.currentPosition > 0 Then
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True
Else
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End If
End Sub
End Class
وبالنهاية اتمنى ان ينال السورس للجميع
وان يكون مفيداً كاستخداماً شخصياً وغير ذلك
تم تحديث المشروع يمكنك الاطلاع عليه من فى هذا الرد
Private Function GetName_(ByVal txt As String) As String
Dim text_ As String = Nothing
For i = 0 To Quran.Count - 1
If txt = Number(i) Then
text_ = Quran(i)
Exit For
Else
text_ = txt + ".mp3"
End If
Next i
Return text_
End Function
Private Function GetNumber_(ByVal txt As String) As String
Dim text_ As String = Nothing
For i = 0 To Quran.Count - 1
If txt = Quran(i) Then
text_ = Number(i) + ".mp3"
Exit For
Else
text_ = txt
End If
Next i
Return text_
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListBox1.Items.Clear()
WSite = "https://download.quranicaudio.com/quran/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(WSite, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If Not node.InnerText = "iza3a.zip" Then
ListBox1.Items.Add(node.InnerText.Replace("/", Nothing).Replace("_", Space(1)).ToUpper())
End If
End If
Next
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
ListBox2.Items.Clear()
Page = WSite + ListBox1.SelectedItem.ToString().Replace(Space(1), "_").ToLower() + "/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(Page, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If node.InnerText.Contains(".mp3") Then
ListBox2.Items.Add(GetName_(node.InnerText.Split(".")(0)))
End If
End If
Next
End Sub
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
FPlay = Page + GetNumber_(ListBox2.SelectedItem)
Player.URL = FPlay
Label1.Text = ListBox2.SelectedItem
If Not CheckBox1.Checked Then
SPlay = 0
Player.controls.stop()
Timer1.Stop()
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
Else
SPlay = 1
Player.controls.play()
Timer1.Start()
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True
End If
ProgressBar1.Value = 0
Button4.Enabled = IIf(ListBox2.Items.Item(0) = ListBox2.SelectedItem, False, True)
Button5.Enabled = IIf(ListBox2.Items.Item(ListBox2.Items.Count - 1) = ListBox2.SelectedItem, False, True)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text = ListBox2.SelectedItem
SPlay = 1
Player.controls.play()
Timer1.Start()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Timer1.Stop()
Player.controls.pause()
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = False
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
SPlay = 0
Player.controls.stop()
Timer1.Stop()
ProgressBar1.Value = 0
Player.URL.Clone()
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
ListBox2.SelectedIndex -= 1
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
ListBox2.SelectedIndex += 1
End Sub
Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If Not Player.playState = WMPLib.WMPPlayState.wmppsPlaying AndAlso SPlay = 1 Then Exit Sub
SPlay = 0
ProgressBar1.Maximum = Player.currentMedia.duration
ProgressBar1.Value = Player.controls.currentPosition
If Player.controls.currentPosition >= 0.1 Then
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True
Else
ListBox2.SelectedIndex += IIf(ListBox2.SelectedIndex < ListBox2.Items.Count - 1, 1, 0)
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End If
End Sub
Private Sub NotifyIcon1_MouseMove(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseMove
If Player.playState = WMPLib.WMPPlayState.wmppsPlaying Then
If Me.Visible = False Then Form2.Show()
End If
If ListBox2.SelectedIndex > 0 Then
If Me.Visible = False Then Form2.Show()
End If
End Sub
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
e.Cancel = IIf(PExit = 1, False, True)
NotifyIcon1.Visible = True
Me.Hide()
If PExit = 0 AndAlso Player.playState = WMPLib.WMPPlayState.wmppsPlaying Then Form2.Show()
End Sub
Private Sub NotifyIcon1_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon1.DoubleClick, ShowToolStripMenuItem.Click
Form2.Hide()
Me.Show()
Me.TopMost = True
End Sub
Private Sub AboutToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AboutToolStripMenuItem.Click
MsgBox("يمكنك تحميل السورس كود من خلال موقع http://vb4arb.com.")
Process.Start("http://vb4arb.com/vb/showthread.php?tid=31756")
End Sub
Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click
Form2.Close()
PExit = 1
Application.Exit()
End Sub
End Class
الاكواد المستخدمة فى الـ Form2
كود :
Public Class Form2
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim x, y As Integer
x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width
y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height
Me.Location = New Point(x, y)
Me.TopMost = True
Form1.Player.settings.volume = TrackBar1.Value * 10
CheckBox1.Checked = Form1.CheckBox1.Checked
End Sub
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
Hide()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Maximum = Form1.ProgressBar1.Maximum
Label2.Text = Form1.Label1.Text
Button1.Enabled = Form1.Button1.Enabled
Button2.Enabled = Form1.Button2.Enabled
Button3.Enabled = Form1.Button3.Enabled
Button4.Enabled = Form1.Button4.Enabled
Button5.Enabled = Form1.Button5.Enabled
TrackBar1.Value = Form1.TrackBar1.Value
ProgressBar1.Value = Form1.ProgressBar1.Value
End Sub
Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
Form1.TrackBar1.Value = TrackBar1.Value
Form1.Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form1.Label1.Text = Form1.ListBox2.SelectedItem
Form1.Player.controls.play()
Form1.Timer1.Start()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Form1.Player.controls.stop()
Form1.Timer1.Stop()
Form1.ProgressBar1.Value = 0
Form1.Player.URL.Clone()
Form1.Button1.Enabled = True
Form1.Button2.Enabled = False
Form1.Button3.Enabled = False
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Form1.Timer1.Stop()
Form1.Player.controls.pause()
Form1.Button1.Enabled = True
Form1.Button2.Enabled = True
Form1.Button3.Enabled = False
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Form1.ListBox2.SelectedIndex -= 1
Form1.STimer = 0
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Form1.ListBox2.SelectedIndex += 1
Form1.STimer = 0
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
Form1.CheckBox1.Checked = CheckBox1.Checked
End Sub
End Class
اتمنى ان ينال الجميع هذا الموضوع
تحياتى لكم جميعاً
وتمنياتى لكم التوفيق الدائم
{وَقُل رَّبِّ زِدْنِي عِلْمًا}
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
15-10-19, 10:49 PM (آخر تعديل لهذه المشاركة : 18-10-19, 02:40 PM {2} بواسطة ابو روضة.)
إقتباس :اتمنى ان ينال الجميع هذا الموضوع
طبعا سينال إعجاب الجميع أخى الغالى...
أتعجب ممن يمرون على الموضوع ويضعون إعجاب دون وضع ولو كلمة شكر بسيطة.
والله بالفعل أتعجب فالكلمة التى تدخل بها السرور على قلب أخوك المسلم ستكون لك صدقة.
وبرغم أن أكثر جهازى مليئ ببرامج قراءن كريم من برمجتى الخاصة بمساعدة أصدقائى هنا وهناك
يعنى لست بحاجة لهذا البرنامج إلا أنى أخجل أن أمّر على موضوع مثل هذا أو غيره ولا أقول ولو كلمة شكر بسيطة تشعر صاحب الموضوع بأهميتة وما قام به له شأن فمن لا يشكر الناس لا يشكر الله..
فالكلمة لن تأخذ منكم وقت ولن تتعب أصابعكم والله لن تتعبها...
بارك الله فيك أخي و أستاذي العزيز ELGOKR على المشروع المميّز و الممتاز فعلاً قمّة الأناقة في الإنجاز و الإتقان أدعو الله العظيم ربّ العرش العظيم بهذا اليوم المبارك الكريم أن يحسن إليك بالدنيا قبل الآخرة و يوفّقك لما يحبّه و يرضاه جزاك الله خيرًا و زادك من علمه و فضله و نفع بك الاسلام و المسلمين إحتراماتي و تقييماتي
أخي معي برنامج زي حقك الفارق أن القرآن من جهازك
إن شاء الله بعمله موضوع بكرة
حقي لا يوازي برنامجك برنامج معمول بإتقان حقي حق واحد مبتدئ
ويقول المثل منكم نستفيد
فقمت بانشاء هذا السورس بامر الله يكون متكامل لدا اى شخص يريد الاستفادة منه
البرنامج خالص بنسبة كبيرة ما يتبقي فقط هو بعض اللمسات الخفيفة فى تغيير المسميات لعض القراء
وكذلك تعريب المسميات للقراء من الكتابة الانجليزية للكتابة العربية والامر سيكون بسيطاً جداً
حيث ستجد كل ما ستحتاج اليه من اكواد فى السورس من تغيير واستبدال وتشغير وما غيرها فالسورس كامل وما الكمال الا لله
السورس تم اضافة له كلاً من
1- مكتبة HtmlAgilityPack وستجد المكتبة مرفقة بالسورس
2- مكتبة WMPLib وهى التابعة لمشغل Windows Media Player
السورس المرفق 2015
صورة للبرنامج
الادوات المستخدمة فى السورس المرفق
1- عدد 1 من اداء PictureBox
2- عدد 5 من اداء Button
3- عدد 1 من اداء TrackBar
4- عدد 1 من اداء ProgressBar
5- عدد 2 من اداء ListBox
6- عدد 1 من اداء Timer
كود السورس كاملاً
كود :
Imports HtmlAgilityPack
Imports WMPLib
Public Class Form1
Private WSite, Page, FPlay As String
Private Player As New WindowsMediaPlayer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListBox1.Items.Clear()
WSite = "https://download.quranicaudio.com/quran/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(WSite, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If Not node.InnerText = "iza3a.zip" Then
ListBox1.Items.Add(node.InnerText.Replace("/", Nothing).Replace("_", Space(1)).ToUpper())
End If
End If
Next
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
ListBox2.Items.Clear()
Page = WSite + ListBox1.SelectedItem.ToString().Replace(Space(1), "_").ToLower() + "/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(Page, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If node.InnerText.Contains(".mp3") Then
ListBox2.Items.Add(GetName_(node.InnerText.Split(".")(0)))
End If
End If
Next
End Sub
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
FPlay = Page + GetNumber_(ListBox2.SelectedItem)
Player.URL = FPlay
Player.controls.stop()
Timer1.Stop()
ProgressBar1.Value = 0
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = IIf(ListBox2.Items.Item(0) = ListBox2.SelectedItem, False, True)
Button5.Enabled = IIf(ListBox2.Items.Item(ListBox2.Items.Count - 1) = ListBox2.SelectedItem, False, True)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text = ListBox2.SelectedItem
Player.controls.play()
Timer1.Start()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Timer1.Stop()
Player.controls.pause()
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = False
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Player.controls.stop()
Timer1.Stop()
ProgressBar1.Value = 0
Player.URL.Clone()
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
ListBox2.SelectedIndex -= 1
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
ListBox2.SelectedIndex += 1
End Sub
Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Maximum = Player.currentMedia.duration
ProgressBar1.Value = Player.controls.currentPosition
If Player.controls.currentPosition > 0 Then
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True
Else
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End If
End Sub
End Class
وبالنهاية اتمنى ان ينال السورس للجميع
وان يكون مفيداً كاستخداماً شخصياً وغير ذلك
تم تحديث المشروع يمكنك الاطلاع عليه من فى هذا الرد