تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف نستخدم مميزات Window7 في البرمجة (VB.NET و C#)
#1

المقدمة :
سنتعلم اليوم إن شاء الله خطوة بخطوة عن إضافة مميزات ويندوز 7 إلى المشاريع المصممة بـ Visual Studio

ماذا ستحتاح :
  1. Visual Studio 2008 or 2010
  2. Windows 7
  3. أداة WindowsAPICodePack يمكنك تحميلها من
    http://code.msdn.microsoft.com/WindowsAPICodePack أو من MediaFire


أولاً : قوائم الإنتقال السريع (Jump Lists)
تنقلك الميزة "قوائم الانتقال السريع" - الجديدة في Windows 7- مباشرةً إلى المستندات أو الصور أو الأغاني أو مواقع ويب التي تقوم بتشغيلها كل يوم. لفتح "قائمة الانتقال السريع"، انقر فقط فوق رمز البرنامج بشريط المهام في Windows 7. (كما ستجده أيضاً في القائمة "ابدأ")

ويمكنك إضافة الإختصارات الخاصة بك في هذه القائمة وتصنيفها في فئات إذا أردت , هذه الإختصارات قد تشير إلى أي شيئ مثل :
  1. المستندات المفتوحة مؤخرا
  2. المستندات الجديدة
  3. وظائف البرنامج
هذه الميزة سهلة الإستخدام جداً , لكن هناك بعض النقاط التي يجب أن تعرفها لتستخدمها بنجاح
  1. يجب أن يكون للتطبيق أيقونة في شريط المهام بمعنى خاصية (ShowInTaskbar) للنموذج يجب أن تكون (True)
  2. إذا أردت أن تضيف ملفات خاصة بمشروعك يجب أن تتأكد أن إمتداد الملف متوافق مع البرنامج ومحفوظ بالريجستري للتوضيح صنعنا برنامج لدمج الملفات ووضعنا الملف الناتج بإمتداد "W7F" لذلك يجب أن نسجل إمتداد الملف "W7F" بالريجستري
  3. يمكنك أن تضيف الأدوات في قسم المهام (Tasks) أو قسم المستندات الأخيرة (Recent Sections) في قائمة الإنتقال أو يمكنك إضافة قسم جديد


لإستخدام قوائم الإنتقال السريعة في مشروعك :
  1. إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
  2. سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell
  3. لا يمكنك إضافة الأدوات أو الاقسام في حدث Load ولكن يمكنك في حدث Shown لأنه في حدث Load يكون النموذج قيد الإنشاء ولا يملك ID لذلك لا تعمل الأوامر في حدث Load
  4. تستطيع إضافة الأدوات في قسم المهام (Tasks) أو قسم المستندات الأخيرة (Recent Sections) أو إضافة قسم جديد

الأوامر :
VB
كود :
Dim JList As JumpList
        JList = JumpList.CreateJumpList()
        JList.ClearAllUserTasks()

        'إضافة وصلتان في قسم Tasks مع فاصل
        Dim Link0 As New JumpListLink("cmd.exe", "Cmd") With {.IconReference =
            New IconReference("cmd.exe", 0)}
        Dim Link1 As New JumpListLink("Calc.exe", "Calculator") With {.IconReference =
            New IconReference("Calc.exe", 0)}
        JList.AddUserTasks(Link0)
        JList.AddUserTasks(New JumpListSeparator())
        JList.AddUserTasks(Link1)

        'إنشاء قسم جديد وإضافة الأدوات فيه
        Dim Link2 As New JumpListLink("Notepad.exe", "Notepad") With {.IconReference =
            New IconReference("Notepad.exe", 0)}
        Dim Category As New JumpListCustomCategory("New Category 1")
        Category.AddJumpListItems(Link2)
        JList.AddCustomCategories(Category)

        'إضافة أداة أخرى إلى القسم لكن بدون فاصل
        Dim Link3 As New JumpListLink("mspaint.exe", "Paint") With {.IconReference =
            New IconReference("mspaint.exe", 0)}
        Category.AddJumpListItems(Link3)

        ' التحكم بقسم المستندات الأخيرة
        ' Neither عدم العرض
        ' Frequent عرض الملفات الأكثر إستخداما
        ' Recent عرض جميع الملفات
        JList.KnownCategoryToDisplay = JumpListKnownCategoryType.Frequent

        JList.*******()

C#
كود :
JumpList JList = default(JumpList);
                JList = JumpList.CreateJumpList();
                JList.ClearAllUserTasks();


                //إضافة وصلتان في قسم Tasks مع فاصل
                JumpListLink Link0 = new JumpListLink("cmd.exe", "Cmd") { IconReference =
                    new IconReference("cmd.exe", 0) };
                JumpListLink Link1 = new JumpListLink("Calc.exe", "Calculator") {
                    IconReference = new IconReference("Calc.exe", 0) };
                JList.AddUserTasks(Link0);
                JList.AddUserTasks(new JumpListSeparator());
                JList.AddUserTasks(Link1);

                //إنشاء قسم جديد وإضافة الأدوات فيه
                JumpListLink Link2 = new JumpListLink("Notepad.exe", "Notepad") {
                    IconReference = new IconReference("Notepad.exe", 0) };
                JumpListCustomCategory Category = new JumpListCustomCategory(
                    "New Category 1");
                Category.AddJumpListItems(Link2);
                JList.AddCustomCategories(Category);

                //إضافة أداة أخرى إلى القسم لكن بدون فاصل
                JumpListLink Link3 = new JumpListLink("mspaint.exe", "Paint") {
                    IconReference = new IconReference("mspaint.exe", 0) };
                Category.AddJumpListItems(Link3);

                //التحكم بقسم المستندات الأخيرة
                //Neither عدم العرض
                //Frequent عرض الملفات الأكثر إستخداما
                //Recent عرض جميع الملفات
                JList.KnownCategoryToDisplay = JumpListKnownCategoryType.Frequent;

                JList.*******();

بالنهاية علينا أن نعلم أنه بإمكاننا إضافة أوامر إلى قائمة الإنتقال السريع وتنفيذها في المشروع الخاص بنا وذلك بواسطة الأمر التالي :

VB
كود :
Dim JList As JumpList
        JList = JumpList.CreateJumpList()
        JList.ClearAllUserTasks()

        Dim Link As New JumpListLink(Application.ExecutablePath, "Print") With {.IconReference =
             New IconReference(Application.ExecutablePath, 0),[color=Red] .Arguments = "Print"[/color]}
        JList.AddUserTasks(Link)
        JList.R efresh()

C#
كود :
JumpList JList = default(JumpList);
        JList = JumpList.CreateJumpList();
        JList.ClearAllUserTasks();

        JumpListLink Link = new JumpListLink(Application.ExecutablePath, "Print") {
            IconReference = new IconReference(Application.ExecutablePath, 0),
            [color=Red]Arguments = "Print"[/color]
        };
        JList.AddUserTasks(Link);
        JList.R efresh();

بحيث نقوم بتغيير الكلمة "Print" إلى الأمر الذي نريد إرساله إلى البرنامج لتنفيذه


ثانيا : الرمز المركب (Icon Overlay)
هذه الميزة الجديدة في ويندوز 7 تمكنك من التعبير عن حالة المشروع وذلك بوضع رمز صغير فوق رمز المشروع ويكون بالجهة اليمنى من الأسفل


لإستخدام الرمز المركب في مشروعك :
  1. إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
  2. سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell

وهناك الكائن "StockIcon" الذي يمكنك من الوصول إلى أيقونات النظام وإستخدامها

الأوامر :

VB
كود :
Dim ID As StockIconIdentifier =StockIconIdentifier.Shield
Dim Size As StockIconSizes =ShellSize
Dim SelectedIcon As New Microsoft.WindowsAPICodePack.Shell.StockIcon(ID, Size, false,
    false)
TaskbarManager.Instance.SetOverlayIcon(Me.Handle, SelectedIcon.Icon, "Icon Name")

C#
كود :
StockIconIdentifier ID = StockIconIdentifier.Shield;
    StockIconSizes Size = ShellSize;
    Microsoft.WindowsAPICodePack.Shell.StockIcon SelectedIcon =
        new Microsoft.WindowsAPICodePack.Shell.StockIcon(ID, Size, false, false);
    TaskbarManager.Instance.SetOverlayIcon(this.Handle, SelectedIcon.Icon, "Icon Name");



ثالثا : شريط التقدم (Progress Bar)
في منطقة الأيقونة للتطبيق في شريط المهام في ويندوز 7 , يمكنك من جعلها بمثابة شريط تقدم , ونرى هذه الخاصية في بعض المتصفحات مثل ( Internet Explorer 8 , Opera)

لإستخدام شريط التقدم في مشروعك :
  1. إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
  2. سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell
  3. لتحديد قيمة الشريط إستخدم الأمر
    كود :
    TaskbarManager.Instance.SetProgressValue(Value, Maximum , handle )

  4. لتحديد حالة الشريط إستخدم الأمر
    كود :
    TaskbarManager.Instance.SetProgressState
وتحتوي SetProgressState على خمسة خيارات هي :


NoProgress : عدم عرض أي شريط.
Indeterminate : تقدم غير محدد (أخضر)
Normal : شريط عادي (أخضر)
Error : خطأ (أحمر)
Paused : متوقف مؤقتا (أصفر)



رابعا : شريط الأدوات المصغر (Thumbnail Tool Bars)

شريط الأدوات المصغر يتيح للمستخدمين الوصول إلى البرنامج حتى لو لم يكن البرنامج محددا أو كان وراء نافذة أخرى أو كان مصغراً ويمكنك رؤية هذه الأدوات في برنامج "windows media player"

وهناك قاعدتان لإستخدام هذا الشريط وهما :
  1. أن لا يتجاوز عدد الأزرار 7 وأن يكون حجم الصورة 16 × 16 بكسل
  2. لا يمكنك حذف أي زر بعد إضافته

لإستخدام شريط الأدوات المصغر في مشروعك :
  1. إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
  2. سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell
  3. إضافة الأزرار ThumbnailToolbarButton
  4. لإضافة الأزرار إلى الشريط إستخدم الأمر
    كود :
    TaskbarManager.Instance.ThumbnailToolbars.AddButtons
الأوامر :
VB
كود :
Dim B1Icon As Icon = New StockIcon(StockIconIdentifier.Shield).Icon
    Dim B2Icon As Icon = New StockIcon(StockIconIdentifier.Users).Icon
    Dim B3Icon As Icon = New StockIcon(StockIconIdentifier.Help).Icon

    Dim WithEvents button1 As New ThumbnailToolbarButton(B1Icon, "First Button")
    Dim WithEvents button2 As New ThumbnailToolbarButton(B2Icon, "Second Button")
    Dim WithEvents button3 As New ThumbnailToolbarButton(B3Icon, "Third Button")

    AddHandler button1.Click, AddressOf Button_Click
    AddHandler button2.Click, AddressOf Button_Click
    AddHandler button3.Click, AddressOf Button_Click

    TaskbarManager.Instance.ThumbnailToolbars.AddButtons(Me.Handle, button1, button2, button3)

    'You can show or hide the buttons
    button1.Visible = Not button1.Visible

    'You can enable or disable the buttons
    button2.Enabled = Not button2.Enabled

    'And you can chnage the button tool tip text
    button3.Tooltip = txtTooltip.Text

C#
كود :
Icon B1Icon  = new StockIcon(StockIconIdentifier.Shield).Icon;
Icon B2Icon  = new StockIcon(StockIconIdentifier.Users).Icon;
Icon B3Icon  = new StockIcon(StockIconIdentifier.Help).Icon;
ThumbnailToolbarButton button1 =
    new Microsoft.WindowsAPICodePack.Taskbar.ThumbnailToolbarButton (B1Icon,
    "First Button");
ThumbnailToolbarButton button2 =
    new Microsoft.WindowsAPICodePack.Taskbar.ThumbnailToolbarButton(B2Icon,
    "Second Button");
ThumbnailToolbarButton button3 =
    new Microsoft.WindowsAPICodePack.Taskbar.ThumbnailToolbarButton(B3Icon,
    "Third Button");

button1.Click += button_Click;
button2.Click += button_Click;
button3.Click += button_Click;

TaskbarManager.Instance.ThumbnailToolbars.AddButtons(this.Handle,button1,button2,button3);

//You can show or hide the buttons
button1.Visible = !button1.Visible;

//You can enable or disable the buttons
button2.Enabled = !button2.Enabled;

//And you can chnage the button tool tip text
button3.Tooltip = txtTooltip.Text;



ولتحميل المشروع من هنا

ولتحميل WindowsAPICodePack من هنا

بالمناسبة هذه الأداة WindowsAPICodePack بها أيضا يمكنك التحكم بالشبكة

وشرح التحكم بالشبكة موجود مع المشروع


وصلى الله على سيدنا محمد وعلى أله وصحبه وسلم
الرد }}}
تم الشكر بواسطة: أبو عمر
#2
جزاكم الله خيرا
ماشاء الله ابداع موضوع مهم جدا
الرد }}}
تم الشكر بواسطة:
#3
[COLOR="#800080"]السلام عليكم

جزاك الله خيرا

بارك الله فيكSmile[/COLOR]
الرد }}}
تم الشكر بواسطة:
#4
ابداع بارك الله فيك
الرد }}}
تم الشكر بواسطة:
#5
هل تعمل على xp
الرد }}}
تم الشكر بواسطة:
#6
شكرا جزيلا
الرد }}}
تم الشكر بواسطة:
#7
جزاك الله خيرااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا
الرد }}}
تم الشكر بواسطة:
#8
شكرا .............
الرد }}}
تم الشكر بواسطة:
#9
جزاك الله كل خير
و مشكووووووووووووووووووووووور
الرد }}}
تم الشكر بواسطة:
#10
ما شاءالله
أبداع لا يوصفه ابداع
جزاك الله خير وبارك الله فيك
وجعله الله في موازين حسناتك ان شاءالله
ربي يحفظك
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [SQL] كورس احتراف البرمجة vb. Net مع SQL server Rafaat 2 1,965 19-12-21, 01:33 AM
آخر رد: Rafaat
Thumbs Up [مقال] الجرافيكس و البرمجة - لمحة سريعة من اجل تنسيق الالوان a7med saba 3 1,537 06-05-21, 02:10 PM
آخر رد: alfaiz678
  لماذا تستخدم دائما رسالة (مرحبا ايها العالم- Hello World!) في كتب تعليم البرمجة معاند الحظ 0 1,300 29-05-20, 02:00 AM
آخر رد: معاند الحظ
  [VB.NET] بداء كورس احتراف البرمجة من الصفر حتى الاحتراف vb. Net with sql server Rafaat 1 1,835 11-04-20, 10:59 PM
آخر رد: Ahmed _ali
  [VB.NET] بداء كورس احتراف البرمجة من الصفر حتى الاحتراف vb. Net with sql server Rafaat 3 1,858 05-04-20, 12:10 AM
آخر رد: khodor1985
  [VB.NET] هام جدا بداء كورس احتراف البرمجة من الصفر الي الاحتراف Rafaat 0 1,106 02-04-20, 11:53 PM
آخر رد: Rafaat
  [VB.NET] كورس احتراف البرمجة vb. Net مع SQL server Rafaat 0 1,632 01-04-20, 08:48 AM
آخر رد: Rafaat
  التعصب للغة البرمجة viv 3 1,798 16-06-19, 01:42 PM
آخر رد: viv
  [نقاش] ما هي لغة البرمجة التي يتطلبها سوق العمل الآن وستظل مطلوبة ؟ dametucorazon 1 1,555 21-05-19, 09:15 PM
آخر رد: حريف برمجة
  تعلم البرمجة من تجربتي المتواضعة abozeyd 1 1,397 26-04-19, 01:00 PM
آخر رد: elgokr

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


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