برنامج مدير النظام Windows Manager مع الكود


System-controller-vb.net-c#-source code

برنامج مدير النظام Windows Manager - C# & VB.Net


هو برنامج يساعدك على إدارة نظام التشغيل ويندوز Windows, حيث يقدم لك عدة خدمات تتيح لك التحكم بأهم إعدادات وخصائص نظام التشغيل إضافة إلى بعض الخدمات التي قد تحتاج إلى برامج أخرى كي تحصل عليها مثل "عمل نسخة إحتياطية عن تعاريف الجهاز Device Drivers" او "حجب موقع معين".

البرنامج كتبته بلغة السي شارب C# ثم قمت بتحويله إلى لغة VB.Net من أجل إفادة جميع مبرمجي لغات الدوت نت, البرنامج مصمم على منصة Visual Studio 2010, إصدار الفريم وورك Framework هو 3.5.

قمت بشرح كود البرنامج بنسة 90% من أجل إفادة جميع مستويات المبرمجين من المبتدئ حتى المحترف. وفي حال عدم وضوح او فهم اي مقطع في الكود, ارجو مراسلتي او اخباري وانا جاهز للمساعدة.

البرنامج مجرب ويعمل بكفاءة على نظم التشغيل التالية (طبعاً 32-64 بت): Windows XP - Windows 7 - Window 8. في حال وجود أخطاء - طبعاً لن يخلو البرنامج من الاخطاء - يرجى إخباري من أجل إصلاحه.


تنفيذ أوامر Ms-Dos في برامج C# & VB.Net


اليوم في هذا الدرس البسيط والسريع سنشرح كيف ننفذ تعليمة MS-Dos في موجه الأوامر مع رؤية الناتج ,, مما يمكننا من استخدام تعليمات dos المفيدة في برامجنا. بعد ما شرحنا في الدرس الماضي كيفية التعامل مع الكلاس Process والكلاس ProcessStartInfo , واستعرضنا أهم خصائص وتوابع هذين الكلاسين.
 


execute command prompt commands in c# and vb.net


  الشرح:


لتنفيذ امر في موجه الأوامر يجب اولاً تشغيل موجه الأوامر "cmd.exe" او "cmd" (لأنه موجود في مجلد system32).

ثم نأتي لأهم نقطة:

كي نرسل أمر إلى موجه الأوامر يجب ان نكتب هذا الأمر مع بارامترات أو معاملات التشغيل لموجه الأوامر أو "Arguments" .. ولذلك نكتب البارامتر ""/c  ثم بعده نكتب تعليمة الدوس التي نريد تنفيذها ,, وهذا مثال لتنفيذ تعليمة  "Dir":
cmd.exe /c dir 
الصورة التالية تعبر عن هذا الأمر (خصائص موجه الأوامر)


command prompt properties خصائص موجه الاومر


الأن لننتقل إلى الكود:


أولاً استيراد المكتبة Diagnostics لتنفيذ عملية تشغيل تعليمة دوس:
Imports System.Diagnostics
using System.Diagnostics;

 الأن نعرف متغير من نوع ProcessStartInfo وهذا الكائن يمكننا من تحديد بعض الخيارات والمعاملات التي تستخدم لبدء عملية تنفيذ تعليمة دوس:
Dim procInfo As ProcessStartInfo = New ProcessStartInfo("cmd")
ProcessStartInfo procInfo = new ProcessStartInfo("cmd");

طبعاً قمنا بتمرير اسم البرنامج والذي هو cmd لتشغيل موجه الأوامر.

بعد ذلك نمرر معاملات التشغيل Arguments:
procInfo.Arguments = "/c " & TextBox1.Text.Trim()
procInfo.Arguments = "/c " + TextBox1.Text.Trim();

من أجل عرض نتيجة تنفيذ الأمر نستخدم الخاصية التالية ونجعل قيمتها True:
procInfo.RedirectStandardOutput = True
procInfo.RedirectStandardOutput = true;

ومن اجل ان يتم نحصل على نتيجة التنفيذ يجب تعين قيمة False للخاصية التالية:
procInfo.UseShellExecute = False
procInfo.UseShellExecute = false;

الأن بقي ان نعرف متغير من نوع Process لتنفيذ عملية تشغيل موجه الأوامر:
Dim proc As Process = New Process()
Process proc = new Process();

ثم تحديد خيارات ومعاملات التشغيل لهذه العملية اي الكائن procInfo الذي عرفناه قبل قليل:
proc.StartInfo = procInfo
proc.StartInfo = procInfo;
الأن تنفيذ العملية:
proc.Start()
proc.Start();

لعرض نتيجة تنفيذ الكود نستخدم الخاصية  StandardOutputالتي تعود بالنتيجة على شكل StreamReader:
Dim result As String = proc.StandardOutput.ReadToEnd()
TextBox2.Text = result
String result = proc.StandardOutput.ReadToEnd();
TextBox2.Text = result;

  خيارات إضافية:


من أجل عدم عرض نافذة موجه الأوامر (النافذ السوداء) ,, نكتب التالي:
procInfo.CreateNoWindow = True
procInfo.CreateNoWindow = true;

مقدمة في العمليات Processes والكلاس Process


سنتناول في هذا الدرس شرح فئة Class مهمة جداً  في البرامج والتي هي Process أي "عملية" ,, التي تمكننا من تشغيل برنامج معين او أداة معينة من أدوات نظام التشغيل. والتحكم بالعمليات (إيقاف - تشغيل - تغيير الأفضلية) التي تعمل على الجهاز الحالي أو على جهاز آخر (Remote Processes).


  الفئة System.ProcessSystem.Process class:


الفئة Process توجد ضمن النطاق (Namespace) الذي هو System.Diagnostics, ما يلي شرح بسيط لأهم الخصائص والاجراءات التي توجد في الفئة (الكلاس) Process:

برنامج DXMedia Player C# & VB.Net

سوف نتناول في هذا الموضوع شرح كيفية استخدام مكتبات DirectX في بيئة الدوت نت - C# & VB.Net - لتشغيل ملفات الصوت والفيديو بسهولة وكفاءة عالية جداً, دون الحاجة إلى أدوات خارجية حيث ان مكتبة DirectX أساسية وموجودة على كل جهاز كمبيوتر.

قمت بكتابة مثال لتطبيق هذا الدرس وهو DxMediaPlayer C# & VB.Net, ستجد رابط تحميله في آخر الدرس.

  برنامج DxMediaPlayer C# & VB.Net:


c#-vb-dotnet-directx mediaplayer


اولاً وبما أننا سنعتمد على مكتبة DirectX لذلك يجب أولاً إضافة المكتبات اللازمة, وسنحتاج في هذا الدرس لمكتبتين هما:

برنامج Website Blocker في الدوت نت

النافذة الرئيسة لبرنامج WebSiteBlocker VB.NET & C#

 
سنقوم في هذا الدرس بإنشاء برنامج بسيط لحجب المواقع, حيث يمكننا من حجب المواقع التي نريدها وبذلك يمكنك التحكم في المواقع التي غير مسموح بأن يتم تصفحها على جهازك.
    

فكرة البرنامج:                                                                                   

في نظام التشغيل Windows يوجد ملف يسمى "hosts" (بدون لاحقة) يوجد في المسار التالي:
C:\Windows\System32\drivers\etc\

هذا الملف هو عبارة عن ملف نصي عادي اي يمكنك فتحه بالمفكرة, يحوي عناوين المواقع المضيفة, ستجد بداخله شرح باللغة الإنكليزية لكيفية حجب موقع ما, حيث انك لتقوم بحجب موقع ما يجب عليك كتابة التالي في سطر جديد:

برنامج دليل هاتف Phone Book – C# & VB.NET

برنامج دليل هاتف Phone Book – C# & VB.NET


سنقوم بتصميم برنامج دليل هاتف بسيط بواسطة لغة C# و  VB.NET وقاعدة بيانات من Sql Server .. خطوات العمل:

  تصميم قاعدة البيانات:

قاعدة البيانات تتألف من جدول واحد و خمس أعمدة (حقول)  بالشكل التالي:

التعامل مع ملفات XML في الفيجوال ستوديو - 2 -

شرح عملية تعديل البيانات:


النافذة الرئيسية برنامج XML C# & VB.NET


بعد ان انتهينا في الدرس السابق التعامل مع ملفات XML في الفيجوال ستوديو من شرح عملية فتح الملف وعرض بياناته في DataGridView ,, الأن سأقوم بشرح عملية الحفظ والتعديل على ملف XML. أولاً سنقوم بشرح الكود التالي:

التعامل مع ملفات XML في الفيجوال ستوديو

مقدمة:

 

للتعامل مع ملفات الـ XML في الفيجوال ستوديو نحتاج إلى المكتبة System.XML ,, لذلك في البداية نحتاج إلى تضمين هذه المكتبة:

using System.Xml;

Imports System.Xml

 

تحوي المكتبة System.XML على الكائن XmlDocument الذي يساعدنا على فتح ملف XML وقراءة محتوياته او تعديل محتوياته.

 

ايضاً سنحتاج إلى الكائن XmlElement الذي يمثل عنصر رئيسي او عنصر جذر في ملف الـ XML ,, وايضاً الكائن XMLNode والذي يمثل عنصر فرعي في المستند.

 

بداية الشرح:

 

أولاً ,, سيكون لدينا برنامج صغير يقوم بعمليات: الإضافة – الحذف – التعديل على ملف XML , البرنامج يقوم بإنشاء ملف XML لتخزين بيانات شركات ,, بنيته هي كالتالي:

 

مجموعة من الأكواد المتنوعة

  • كود معرفة عدد الثواني التي مرت على تشغيل الجهاز Get Time by Seconds from PC Start:
private int GetSecFromStart()
{
    int SecondsFromStart = Environment.TickCount / 1000;
    return SecondsFromStart;
}


  • كود معرفة دقة الشاشة Get Screen Resolution:
private string GetScreenRes()
{
    string ScrRes = Screen.PrimaryScreen.Bounds.Width + "X" + Screen.PrimaryScreen.Bounds.Height;
    return ScrRes;
}


  • كود معرفة ايبي الجهاز Get PC IP Address:
public static string GetIPAddress(string sHostName)
{
    System.Net.IPHostEntry ipEntry = System.Net.Dns.GetHostByName(sHostName);
    System.Net.IPAddress[] addr = ipEntry.AddressList;
    string sIPAddress = addr[0].ToString();
    return sIPAddress;
}

  • كود لإصدار صوت تنبيه في الويندوز Play Beep Sound:
Private Sub PlayBeep()
    Dim b As System.Media.SystemSound = System.Media.SystemSounds.Beep

    b.Play()
End Sub


  • كود الحصول على الخطوط الموجودة في الجهاز Get Fonts on your PC:
Private Sub GetSystemFonts()
    Dim fnt As New System.Drawing.Text.InstalledFontCollection()

    For i As Integer = 0 To fnt.Families.Length - 1
        ListBox1.Items.Add(fnt.Families(i).Name)
    Next
End Sub


  • كود طباعة ملف Print File quickly:
Private Sub PrintFile(ByVal FileName As String)
    Dim prnt As New System.Drawing.Printing.PrintDocument
                  
    prnt.DocumentName = FileName
    prnt.Print()
End Sub

تعلم الرسم في الدوت نت مع GDI+

ما هي GDI:
Graphic Device Interface أو اختصاراً GDI وهي تقنية للتعامل مع الرسومات ثائية البعد 2D Drawings.
وهي تتألف من مجموعة من كلاسات C++ التي تعمل على الربط بين البرامج والهاردوير اي انها تعمل كوسيط يترجم أوامر البرامج إلى لغة يفهما العتاد الصلب Hardware الخاص بالرسومات Graphics.

حسناً ما هي GDI+ إذاً:
في الفيجوال ستوديو Visual Studio .Net قامت مايكروسوفت بإضافة العديد من التحسينات والمزايا على تقنية GDI لجعل التعامل معها أسهل ,, وهذا قادنا إلى ظهور GDI+ النسخة المطورة من GDI.


والآن لننتقل إلى العمل البرمجي:


الفرق بين Class و Object في الدوت نت

 مقدمة:
كتبت هذا الموضوع لأن أساس البرمجة في الدوت نت هي الـكائنات وفهم كيفية عملها يساعد على بناء تطبيقات صحيحة و سريعة لا تستهلك موارد النظام و تملأ ذاكرة الحاسب بكائنات ليس لها عمل و الذي يسمى بتسريب الذاكرة .Memory Leak

    ما هو الصنف  Class ؟
    هو برنامج لا يعمل لوحده تستخدمه ضمن برنامجك لأنه لا يحتوي على واجهة  Interface للتفاعل مع المستخدم
    توجد الأصناف في مكتبات الربط الديناميكي  Dynamic Link Library و هي ملفات من نوع DLL

    عندما تضيف أحد هذه المكتبات كمرجع  Reference لمشروعك يتم تحميل كود الصنف في الذاكرة
    ويضاف مجموعة جديدة من المتغيرات و هذا ما يسمى  Class Instantiation أو إعطاء قيم أولية للصنف

    بعد تحميل الصنف في الذاكرة يمكنك تعريف متغير يشير إلى كائن من الصنف الجديد

    و تكون قيمة المتغير هي عنوان القسم الذي يحتوي على الكائن الجديد في الذاكرة و اسمه Pointer



    العمل مع محرر التسجيل Registry من خلال الدوت نت

    مقدمة:

    دائماً ما كان المبرمجون يجدون محرر التسجيل Windows REGISTRY مكاناً مناسب لتخزين معلومات وإعدادات برامجهم وذلك لأن الوصول للبيانات عبر الريجستري هو اسرع من الوصول للبيانات من الملفات وأيضاً لأنه مستودع آمن للبيانات في نظام التشغيل.

    في هذا الدرس سنتحدث عن التعامل مع الريجستري Registry في C#.Net و VB.Net:


    أساسيات محرر التسجيل Windows Registry:

    بنية الريجستري منظمة بشكل هرمي. ويوجد في الريجستري خمسة مفاتيح معرفة مسبقاً تخزن تحتها جميع البيانات وكما ان هذه المفاتيح لا يمكن إعادة تسميتها او حذفها, ويندرج تحت كل مفتاح منها العديد من المفاتيح القرعية Subkeys إضافة إلى قيم البيانات Values. وإليكم وصف بسيط حول كل مفتاح منها:


    التعامل مع التاريخ والوقت في الدوت نت

     مقدمة:
    كي تتعامل مع كل من التاريخ والوقت, يوجد كلاسين وهما DateTime,TimeSpan اللذان يحويان العديد من التوابع والاجراءات التي تساعدك وتسهل عليك التعامل مع الوقت والتاريخ .. حيث بإمكانك مثلاً حساب العمر اعتماداً على تاريخ الميلاد او حساب كم تبقى من الايام (او حتى الساعات) على تاريخ ميلادك.

    screenshot of our example



    حفظ إعدادات البرنامج

    مقدمة:
    ستحتاج كثيراً في برامجك إلى حفظ بعض الاعدادات الخاصة بالبرنامج, فمثلاً قد تضع في برنامجك خيار للمستخدم يستطيع من خلاله تغيير لون الفورم ولكن بعد ان يقوم المستخدم بتغيير لون خلفية الفورم والخروج من البرنامج ثم العودة إليه مجدداً, ستجد ان لون الفورم عاد إلى اللون الافتراضي وذلك لأنك لم تقم بحفظ اللون الجديد الذي اختاره المستخدم.

    طبعاً يمكنك حفظ إعدادات البرنامج عن طريق الريجستري, ولكن في هذا الدرس سنتعلم ,,
    كيف تقوم بحفظ مثل تلك البيانات How To Save Program Settings in Visual Studio:

    screenshot of our example


    برنامج المفكرة

    العمليات التي يمكن القيام بها في البرنامج:
    1. فتح ملف نصي
    2. حفظ ملف نصي
    3. قص/ نسخ/ لصق نص
    4. تحديد كامل النص في صندوق النصوص
    Screenshot of our example