مرحبا بك اخي محب اسامة :)
دروس شبه يومية لل Visual Basic .Net
تشغيل الاصوات عن طريق دوال API
بصراحة لم اجد طريقة مناسبة غير معقدة في فيجوال بيسك .نت تمكننا من تشغيل الاصوات .
ولكني تذكرت الدالة sndPlaySound والتي كنا نستخدمها في VB6 لتشغيل الاصوات و سنستخدمها ان شاء الله في VB.NET ايضا .
و في المثال التالي سنتعلم:
1- كيفية استخدام دوال ال API و الثوابت في VB.NET .
2- كيفية تشغيل الاصوات .
اتبع الخطوات التالية:-
1- ابدا مشروع Windows Application .
2- اضف زر امر وادخل على صفحة الكود .
3- يجب ان نصرح اولا عن الدالة sndPlaySound , وذلك ضمن الكلاس Form1 .تحت السطر الاتي مباشرة:
Inherits System.Windows.Forms.Form
اكتب هذا التصريح:
[CODE] Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
ثم اضف هذا الكود والذي يصرح عن الثابت Constant :
Const SND_ASYNC = &H1
4- اضف الكود التالي ضمن زر الامر لكي تقوم بتشغيل الصوت مباشرة:
sndPlaySound("d:x.wav", SND_ASYNC)الدالة sndPlaySound لها وسيطين :
1- مسار الملف الذي تريد تشغيله .
2- كيفية التشغيل : يعني هل تريده ان يكرر الصوت او ان يقوم بتشغيله مرة واحدة فقط . يعني خيارات اضافية , ويمكنك ان تجعل هذه القيمة صفر ليقوم بتشغيل الصوت مرة واحدة .
واذا اردت معلومات وافية عن دوال ال API فراجع هذا الموقع المشهور لدى مبرمجي الفيجوال بيسك
واريد ان اوضح نقطة وهي انه بامكانك تشغيل الاصوات عن طريق هذا الكود
System.Diagnostics.Process.Start("d:x.wav")ولكن هذا الكود يقوم بتشغيل برنامج لتشغيل الصوت ولا يقوم بتشغيل الصوت من برنامجك .
ارجو ان يكون الدرس مفيد .
خدمات الويندوز Windows Service
خدمات الويندوز هي عبارة عن برامج تشتغل في الخلفية BackGround و تستخدم في عدة امور ككتابة ملفات السجلات log و مراقبة البرامج وغيرها , و وميزتها انها تشتغل قبل دخول المستخدم للويندوز . يعني قبل ال Log In .
ولانشاء خدمة ويندوز خاصة بك , قم بالاتي:-
1- من New Project اختر Windows Service .
2- اضف اداة Timer واجعل قيمة Inrerval تساوي 10000 (عشر ثواني) ثم ادخل الى صفحة الكود . لاحظ ان هناك حدثان هما On Start و يستخدم عند تشغيل الخدمة , و الحدث On Stop ويستخدم عند ايقاف الخدمة .
3- اضف هذا الكود ضمن حدث اداة ال Timer1 :
Dim y As New IO.StreamWriter("C:x.txt")
y.Write(Now.ToString)
y.Close()الكود السابق يقوم بكتابة الوقت والتاريخ لملف يدعى x.txt .ففي البداية استدينا الكلاس StreamWrite لكي نستخدم الدالة Write والتي تقوم بالكتابة الى ملف معين . الدالة Now تعيد الوقت والتاريخ الحالي .
لاحظ انه يجب ان نغلق الملف في النهاية بالدالة Close .
4- اضف الى الحدث OnStart الكود التالي لتفعيل المؤقت عند تشغيل الخدمة:
Timer1.Enabled = True
ثم اضف الكود التالي الى الحدث OnStop وذلك لابطال المؤقت عند ايقاف الخدمة:
Timer1.Enabled = False
انتهينا الان من برمجة خدمة الويندوز وبقي علينا مشروع تثبيت الخدمة على الويندوز .
5- اخرج الان من صفحة الكود واذهب الى صفحة التصميم Service1.vb [Design] , ثم اضغط باليمين في اي مكان واختر Add Installer . ستظهر لك اداتين , اضغط على الاداة ServiceInstaller1 وغير الخاصية DisplayName الى MyService . وهذا سيكون الاسم الذي ترى به خدمتك الجديدة في الويندوز .
ثم اضغط على الاداة ServiceProcessInstaller1 وغير الخاصية Account الى LocalSystem (لكي نقوم بتشغيل الخدمة على الجهاز الحالي .
6- انشء ملف txt تحت هذا المسار
c:x.txt
من قائمة Build اضغط على Build Solution لتقوم بعمل بناء و تجميع لخدمتك .
الى الان لم تثبت الخدمة على النظام .
7- من قائمة Start - Programs - Microsoft Visual Studio .NET - Visual Studio .NET Tools - Visual Studio .NET Command Prompt .
اذا كان مسار الملف التنفيذي الذي انشاته للخدمه هو
D:WindowsService1binWindowsService1.exe فاكتب الامر الاتي تحت سطر الاوامر:
installutil D:WindowsService1binWindowsService1.exe
لاحظ ان الامر السابق يقوم بتثبيت الخدمة فعليا تحت نظام الويندوز .
8- لاختبار الخدمة , من Control Panel اضغط على Administrative Tools , ثم Services . ثم ابحث عن خدمة MyService , اضغط عليها باليمين ثم اضغط على Start .
الان كل عشر ثواني ستكتب الخدمة الوقت والتاريخ في الملف c:x.txt .
الكلاس Class
سابدا الان بالتحدث عن الامور المتقدمة في نفس لغة Visual Basic .NET (الكلاسات , الاشتقاق , الاحداث , الخ)
الكلاس يتكون من مجموعة من الخصائص و الوظائف . و الكلاس ليس كائنا Object وانما الكائن ينشأ من الكلاس , اليك المثال:
Class SimpleClass
Public Sub SimpleMethod()
System.Console.Write("Simple Class")
End Sub
End Classالكود السابق عبارة عن تصريح لللكلاس SimpleClass , والذي به الوظيفة SimpleMethod .لاحظ ان الكود السابق لا يقوم باي عمل الا اذا كتبت هذا الكود :
Class Prog1 Public Shared Sub Main() Dim obj as New SimpleClass() obj.SimpleMethod() End Sub End Class
الكود السابق عبارة عن الكلاس Prog1 , و به الاجراء main والذي يقوم باستدعاء صورة (كائن) من الكلاس SimpleClass و استخدام الوظيفة التابعة له SimpleMethod . لاحظ اننا قمنا باستخدام الكلمة المحجوزة New لكي نقوم باستدعاء صورة او كائن Instance من الكلاس SimpleClass . و بدون الكلمة New فانك لن تستطيع القيام بانشاء الكائن , وبالتالي لن تقوم باستخدام الكلاس .
والدرس القادم يوضح انواع التصريح عن الكلاسات (عام , خاص , محمي ...)
جزاك الله كل خير أخي عبد الرحمن وجعل ما تقدمه من خدمة لإخوانك في ميزان حسناتك ...
نتابعك بك اهتمام وترقب...
كنت راح اكمل الدروس ولكني وجدت ان الاخ نجم قد شرح المواضيع التي كنت راح اشرحها . و كمان من نفس الموقع النجليزي PlanetSourceCode.com
ولو تلاحظ فان المثال اللي كتبته في الدرس السابق موجود في درس الاخ نجم , والليك الرابط
http://www.arabteam2000.com/vb/showthread....?threadid=23293
وبالتالي من الافضل ان اكتب درسا اخر لكي ننوع:)
سنبدا من اليوم بشرح بعض الدوال المفيدة (ان صح التعبير) في فيجوال بيسك .نت والتي تمتد جذورها الى فيجوال بيسك 6 و ما قبله . واليك تصنيف الدوال التي سنقوم بتعلمها معا ان شاء الله:
1- الادخال والاخراج .
2- الملفات والمجلدات .
3- انواع البيانات .
4- تحويل انواع المتغيرات .
5- النصوص .
6- صيغ البيانات .
7- الرياضيات .
8- التاريخ والوقت .
9- القراءة والكتابة في الملفات .
10- الارقام العشوائية .
11- الرسومات .
12- الريجستري .
13- التطبيق او البرنامج .
14- منوعات اخرى .
وسنتعرض لهذه الدوال بالامثلة بشكل سريع لانها راح تكون سهلة ان شاء الله و مفيدة في نفس الوقت .
الادخال والاخراج : الدالتين Msgbox , Inputbox
اولا الدالة InputBox :تطلب هذه الدالة من المستخدم ان يقوم بادخال بيانات .
InputBox("please enter your name", "name", System.Environment.UserName.ToString)الوسيط الاول: النص الذي يوضح للمستخدم ما يدخله.
الوسيط الثاني: عنوان مربع الادخال .
الوسيط الثالث : هذا الوسيط لم يكن موجودا في VB6 , وهو ان تقوم بكتابة بيانات تتوقع ان المستخدم سوف يكتبها . فمثلا الكود السابق يطلب من المستخدم كتابة اسمه , وفي هذا الوسيط كتبت الكود الذي يقوم بالكشف عن اسم المستخدم . فعلا وسيط رائع للغاية .
الوسيط الرابع: موقع مربع الادخال في الشاشة (X,Y) .
ثانيا الدالة MsgBox :
الدالة MsgBox عكس الدالة InputBox , فهي تقوم بعرض بيانات للمستخدم
MsgBox("helow my friend", MsgBoxStyle.Information, "helo")ولها 3 وسائط:
الاول: محتوى الرسالة.
الثاني: نوع الرسالة (معلومات . تحذير , مساعدة , .... الخ)
الثالث: عنوان الرسالة .
[FONT=Arial]شكرا لك على جهودك المتميزه ومزيد من التقدم.... ونعدك بمتابعة بقية الدروس إن شاء الله (gift)
دوال الملفات
الدالة SetAttr
تقوم هذه الدالة بتغيير خواص الملفات Attributes . (للقراءة فقط , مخفي ...)
ولها وسيطين:
SetAttr("d:x.gif", FileAttribute.ReadOnly)الاول: الملف الذي تريد تغير خواصه .
الثاني: الخواص التي تريد تغييرها .
الدالة Kill
تقوم بحذف الملفات .
Kill("C:x.txt")ولها وسيط وحيد وهو الملف الذي تريد حذفه .
الدالة FileDateTime
القيمة المسترجعة من هذه الدالة هي الوقت والتاريخ لملف معين (دالة مفيدة)
MsgBox(FileDateTime("d:x.gif"))ولها وسيط وحيد وهو الملف الذي تريد معرفة التاريخ والوقت الذي انشئ فيه او
المرة الاخيرة التي تم التعديل فيه .
الدالة FileLen :
القيمة المسترجعة من هذه الدالة هي حجم ملف معين بالبايتات .
MsgBox(FileLen("c:x.txt"))طبعا راح يكون الرقم كبير لانه بالبايتات . وبالتالي يمكنك القسمة على 1024 لتحويله الى كيلو بايت .
الدالة FileCopy
تقوم هذه الدالة بنسخ ملف معين من مساره الى مسار اخر .
FileCopy("C:x.txt", "d:x.txt")لها وسيطين وهما:
الاول: مسار الملف الذي تريد نسخه .
الثاني: المسار الذي تريد نسخ الملف اليه .
الدالة Rename
تقوم بتغيير اسم ملف او مجلد معين
Rename("C:x.txt", "C:y.txt")ولها وسيطين:
الاول: مسار الملف الذي تريد تغيير اسمه .
الثاني: المسار والاسم الجديد .
ويمكنك تغيير اسم مجلد كامل حتى لو كانت به ملفات او مجلدات .
هلا بالاخت عاشقة الحاسب .
و مشكورة على التشجيع :)
دوال المجلدات
الدالة MkDir
تقوم بانشاء مجلد
MkDir("C:fld")ولها تابع وحيد وهو مسار المجلد الذي تريد انشاؤه .
الدالة RmDir
تقوم بمسح مجلد معين بشرط ان يكون المجلد خالي . واذا اردت حذف مجلد به ملفات فقم باستخدام الدالة Kill لمسح الملفات ثم استخدم الدالة RmDir لحذف المجلد .
RmDir("C:fld")ولها تابع وحيد وهو مسار المجلد الذي تريد حذفه .
كما ان هناك دوال اخرى مثل Dir والتي تتحقق من وجود ملف او مجلد معين .
واليك هذا الكود على الدالة Dir .
hidden = Dir("C:WINNT*.dll", FileAttribute.Hidden)فالكود السابق يقوم بالكشف عن ملفات ال dll المخفية الموجود في ملفات الويندوز .
نكتفي بهذا القدر من دوال المجلدات .
التعرف على انواع البيانات
الدالة IsArray
تقوم بالتحقق فيما اذا كان المتغير على شكل مصفوفة او لا .
Dim x(100) MsgBox(IsArray(x))
الدالة IsDate
تقوم بالتحقق من المتغير اذا كان على هيئة تاريخ او لا .
Dim x
x = InputBox("Enter the date")
If IsDate(x) = True Then
MsgBox("thank you")
Else
MsgBox("enter the date correctly")
End Ifالكود السابق يطلب من المستخدم كتابة التاريخ . ثم يقوم بالتحقق عن طريق الدالة IsDate ما اذا كان المستخدم قد ادخل التاريخ بشكل صحيح او لا .
الدالة IsNumeric
تقوم بالتحقق من المتغير فيما اذا كان رقما او نصا .
Dim x
x = InputBox("type your age")
If Not IsNumeric(x) = True Then
MsgBox("type it again please")
End Ifالكود السابق يطلب من المستخدم ادخال عمره . فاذا كتبه نصيا فان البرنامج يطلب منه اعادة كتابته رقميا .
السلام عليكم ورحمة الله
برك الله فيك
هلا بالاخ BASHER_VB .
احب فقط ان اطلعكم على هذا الموقع الشامل لتقنية .NET
به روابط كثيرة جدا
تحويل انواع البيانات
1- CBool : تقوم بتحويل نوع المتغير الى قيمة Boolean اي (True , False ) .
2- CByte : تقوم بتحويل نوع المتغير الى قيمة بايت .
3- CDate : تقوم بتحويل نوع المتغير الى قيمة تاريخ .
4- CDec : تقوم بتحويل نوع المتغير الى قيمة عشرية .
5- CDble :تقوم بتحويل نوع المتغير الى عدد مضاعف .
6- CInt : تقوم بتحويل نوع المتغير الى عدد صحيح .
7- CLong : تقوم بتحويل نوع المتغير الى عدد طويل .
8- CStr : تقوم بتحويل نوع المتغير الى نص .
و ساعطيك مثال على الدالة الاخيرة لتعرف كيف تقوم بالتحويل في انواع البيانات :
MsgBox(CStr(123))
في هذه المثال حولنا العدد 123 الى قيمة نصية يمكن استخدامها في الدوال التي تطلب منك ادخال قيمة نصية وليس عددية .
شكراً على المجهود الرائع والى الامام
اعتقد أني اتخرت لكن نشكرك بالعمل الطيب
وشكراً(f)
If you think yourself that you are nobody, you should go somewhere to find yourself
بسم الله الرحمن الرحيم
نشكر الاخ عبدالرحمن
على هذا المجهود الطيب وتاكد يا اخ عبدالرحمن ان هناك من يتطلعون الى المزيد من هذه الدروس
وادعو الله ان يجزيك عنا خير الجزاء
ولكن لى ملحوظة على هذا الكود الخاص بتشغيل الصوتيات
هذا الكود لا يستدعى إلا الامتداد wav على الرغم من اننى قد قمت بتغير نوع الملف الى امتدادات اخرى مثل mp3--dat--asf
فماذا أفعل
ولك منى جزيل الشكر
وارجو منك الرد العاجل
:o:o:o:o
نشكر الاخ عبدالرحمن
على هذا المجهود الطيب وتاكد يا اخ عبدالرحمن ان هناك من يتطلعون الى المزيد من هذه الدروس
وادعو الله ان يجزيك عنا خير الجزاء
ولكن لى ملحوظة على هذا الكود الخاص بتشغيل الصوتيات
هذا الكود لا يستدعى إلا الامتداد wav على الرغم من اننى قد قمت بتغير نوع الملف الى امتدادات اخرى مثل mp3--dat--asf
فماذا أفعل وما هو الكود الازم لايقاف الدالة:o:o
ولك منى جزيل الشكر
وارجو منك الرد العاجل
نشكر الاخ عبدالرحمن
على هذا المجهود الطيب وتاكد يا اخ عبدالرحمن ان هناك من يتطلعون الى المزيد من هذه الدروس
وادعو الله ان يجزيك عنا خير الجزاء
ولكن لى ملحوظة على هذا الكود الخاص بتشغيل الصوتيات
هذا الكود لا يستدعى إلا الامتداد wav على الرغم من اننى قد قمت بتغير نوع الملف الى امتدادات اخرى مثل mp3--dat--asf
فماذا أفعل وما هو الكود الازم لايقاف الدالة:o:o
ولك منى جزيل الشكر
وارجو منك الرد العاجل
الشبح : اهلا بك :)
amr_a : والله للاسف اخوي , حاولت ان اجد طريقة لتشغيل انواع اخرى من الاصوات غير ال wav و لكني لم اجد . ولكن ان شاء الله سوف نجدها .
التعامل مع النصوص 1
الدالة Asc : تعطي الرقم المقابل لحرف معين .
MsgBox(Asc("x"))سيكون الناتج 120 .
الدالة Chr : تعطي الحرف المقابل لرقم معين (عكس الدالة Asc )
MsgBox(Chr("120"))سيكون الناتج هو الحرف x .
الدالة LCase : تحول الحروف الكبيرة Capital الى صغيرة ( من A الى a )
MsgBox(LCase("HOLA"))الدالة UCase : تحول الحروف الصغيرة الى كبيرة (من a الى A )
MsgBox(UCase("hola"))بسم الله الرحمن الرحيم
اخى عبد الرحمن شكرا على اهتمامك ملحوظة اريد اذا سمحت كود لايقاف
التشغيل
وفقك الله اخيك عمرو
:o:o:o :o:o:o
وهذا هو برنامج القاموس بالاكواد هدية للمنتدى
بسم الله الرحمن الرحيم
اخوانى هذا هو برنامج القاموس بالاكواد هدية للمنتدى
هدية من احمد و عمرو ولكن يوجد بة عيب واحد هو انة يمكن تخزين المعلومة اكثر من مرة من يستطع الاجابة وتكملة البرنامج يكون مشكور
وفكرة البرنامج هو الاتصال بقاعدة البيانات والحذف والاضافة منها
ولا تنسوونا بصالح الدعاء
الله يعطيك العافيه ويزيدك علما ينفع به الله الأمه الاسلاميه...
وننتظر المزيد ....
هذا الموضوع مغلق.
