17-09-12, 09:41 PM
المقدمة :
سنتعلم اليوم إن شاء الله خطوة بخطوة عن إضافة مميزات ويندوز 7 إلى المشاريع المصممة بـ Visual Studio
ماذا ستحتاح :
- Visual Studio 2008 or 2010
- Windows 7
- أداة WindowsAPICodePack يمكنك تحميلها من
http://code.msdn.microsoft.com/WindowsAPICodePack أو من MediaFire
أولاً : قوائم الإنتقال السريع (Jump Lists)
تنقلك الميزة "قوائم الانتقال السريع" - الجديدة في Windows 7- مباشرةً إلى المستندات أو الصور أو الأغاني أو مواقع ويب التي تقوم بتشغيلها كل يوم. لفتح "قائمة الانتقال السريع"، انقر فقط فوق رمز البرنامج بشريط المهام في Windows 7. (كما ستجده أيضاً في القائمة "ابدأ")
ويمكنك إضافة الإختصارات الخاصة بك في هذه القائمة وتصنيفها في فئات إذا أردت , هذه الإختصارات قد تشير إلى أي شيئ مثل :
لإستخدام قوائم الإنتقال السريعة في مشروعك :
الأوامر :
بالنهاية علينا أن نعلم أنه بإمكاننا إضافة أوامر إلى قائمة الإنتقال السريع وتنفيذها في المشروع الخاص بنا وذلك بواسطة الأمر التالي :
بحيث نقوم بتغيير الكلمة "Print" إلى الأمر الذي نريد إرساله إلى البرنامج لتنفيذه
ويمكنك إضافة الإختصارات الخاصة بك في هذه القائمة وتصنيفها في فئات إذا أردت , هذه الإختصارات قد تشير إلى أي شيئ مثل :
- المستندات المفتوحة مؤخرا
- المستندات الجديدة
- وظائف البرنامج
- يجب أن يكون للتطبيق أيقونة في شريط المهام بمعنى خاصية (ShowInTaskbar) للنموذج يجب أن تكون (True)
- إذا أردت أن تضيف ملفات خاصة بمشروعك يجب أن تتأكد أن إمتداد الملف متوافق مع البرنامج ومحفوظ بالريجستري للتوضيح صنعنا برنامج لدمج الملفات ووضعنا الملف الناتج بإمتداد "W7F" لذلك يجب أن نسجل إمتداد الملف "W7F" بالريجستري
- يمكنك أن تضيف الأدوات في قسم المهام (Tasks) أو قسم المستندات الأخيرة (Recent Sections) في قائمة الإنتقال أو يمكنك إضافة قسم جديد
لإستخدام قوائم الإنتقال السريعة في مشروعك :
- إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
- سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell
- لا يمكنك إضافة الأدوات أو الاقسام في حدث Load ولكن يمكنك في حدث Shown لأنه في حدث Load يكون النموذج قيد الإنشاء ولا يملك ID لذلك لا تعمل الأوامر في حدث Load
- تستطيع إضافة الأدوات في قسم المهام (Tasks) أو قسم المستندات الأخيرة (Recent Sections) أو إضافة قسم جديد
الأوامر :
VB
C#
كود :
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
C#
كود :
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 تمكنك من التعبير عن حالة المشروع وذلك بوضع رمز صغير فوق رمز المشروع ويكون بالجهة اليمنى من الأسفل
لإستخدام الرمز المركب في مشروعك :
وهناك الكائن "StockIcon" الذي يمكنك من الوصول إلى أيقونات النظام وإستخدامها
الأوامر :
لإستخدام الرمز المركب في مشروعك :
- إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
- سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell
وهناك الكائن "StockIcon" الذي يمكنك من الوصول إلى أيقونات النظام وإستخدامها
الأوامر :
VB
C#
كود :
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)
لإستخدام شريط التقدم في مشروعك :
NoProgress : عدم عرض أي شريط.
Indeterminate : تقدم غير محدد (أخضر)
Normal : شريط عادي (أخضر)
Error : خطأ (أحمر)
Paused : متوقف مؤقتا (أصفر)
لإستخدام شريط التقدم في مشروعك :
- إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
- سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell
- لتحديد قيمة الشريط إستخدم الأمر
كود :
TaskbarManager.Instance.SetProgressValue(Value, Maximum , handle )
- لتحديد حالة الشريط إستخدم الأمر
كود :
TaskbarManager.Instance.SetProgressState
NoProgress : عدم عرض أي شريط.
Indeterminate : تقدم غير محدد (أخضر)
Normal : شريط عادي (أخضر)
Error : خطأ (أحمر)
Paused : متوقف مؤقتا (أصفر)
رابعا : شريط الأدوات المصغر (Thumbnail Tool Bars)
شريط الأدوات المصغر يتيح للمستخدمين الوصول إلى البرنامج حتى لو لم يكن البرنامج محددا أو كان وراء نافذة أخرى أو كان مصغراً ويمكنك رؤية هذه الأدوات في برنامج "windows media player"
وهناك قاعدتان لإستخدام هذا الشريط وهما :
- أن لا يتجاوز عدد الأزرار 7 وأن يكون حجم الصورة 16 × 16 بكسل
- لا يمكنك حذف أي زر بعد إضافته
لإستخدام شريط الأدوات المصغر في مشروعك :
- إضافة المرجعين Microsoft.WindowsAPICodePack.Shell و Microsoft.WindowsAPICodePack
- سنستخدم فضاء الأسماء Microsoft.WindowsAPICodePack.Taskbar و Microsoft.WindowsAPICodePack.Shell
- إضافة الأزرار ThumbnailToolbarButton
- لإضافة الأزرار إلى الشريط إستخدم الأمر
كود :
TaskbarManager.Instance.ThumbnailToolbars.AddButtons
VB
C#
كود :
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 بها أيضا يمكنك التحكم بالشبكة
وشرح التحكم بالشبكة موجود مع المشروع
وصلى الله على سيدنا محمد وعلى أله وصحبه وسلم