PDA

View Full Version : آموزش: استفاده از امکانات Taskbar Windows 7



ArashRoshan
شنبه 12 شهریور 1390, 18:32 عصر
سلام به همه .
من می خوام توی این تاپیک آموزش های استفاده از امکانات تسک بار ویندوز 7 رو آموزش بدم . لطفا هر سوالی دارید بپرسید . راستی برای اینکه آموزش ها پخش نشه تو پست های مختلف ، هر دفعه همین پست 1 رو ویرایش می کنم .

آموزش 1 : ایجاد Progress Bar در آیکون برنامه در Task Bar .

74775
خب ، شما حتما دیدید که بعضی از برنامه های جدید که برای Windows 7 با اون Taskbar قشنگش نوشته می شن یه Progressbar داخلشون هست که توی Task bar هم دیده میشه . شما هم می تونید مثلا برای آپدیت کردن برنامتون یا وقتی می خواید یه فایل رو کپی کنید از این تکنیک استفاده کنید تا برناتون یه حال و هوای دیگه پیدا کنه .

برای شروع باید Windows API مربوط به این کار رو دانلود کنید ، منبع خود سایت Microsoft رو میدم که معتبر باشه : http://archive.msdn.microsoft.com/Wi...ReleaseId=3574
برای آموزش های بعدی به این فایل نیاز دارید .
وقتی وارد سایت شدید ، یک فایل با نام windowsAPICodePack با پسوند Zip وجود داره اون رو دانلود کنید ، بعد باید فایل اصلیش رو یعنی :
WindowsAPICodePack\WindowsAPICodePack.sln
باز کنید و یه Rebuild انجام بدید .

خب تاحالا ما فایل API رو ساختیم . بعد توی برنامتون یه فرم بسازید و یه Progressbar و یه Trackbar قرار بدید تا با استفاده از Trackbar مقدار رو تنظیم کنیم
حالا باید API رو به برنامتون اضافه کنید ، برید توی منوی Project بعد روی Add references کلیک کنید ، برید به مسیر :
WindowsAPICodePack\Shell\bin\Debug
فایل Microsoft.WindowsAPICodePack.Shell.dll رو اضافه کنید به برنامتون . بعد کد زیر رو برای برنامتون بنویسید :


Imports Microsoft.WindowsAPICodePack
Imports Microsoft.WindowsAPICodePack.Taskbar
Public Class Form1
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TrackBar1.Scroll
ProgressBar1.Value = TrackBar1.Value * 10
TaskbarManager.Instance.SetProgressValue(TrackBar1 .Value * 10, 100)
End Sub
End Class


بعدش امیدوارم مفید بوده باشه ، شما میتونید با اون فایلی که دانلود کردید کلی کارهای جالب انجام بدید ، برید توی پوشه Samples و پروژه های مثال رو نگاه کنید . این API ها خیلی به درد می خورند .

آموزش 2 : ایجاد Taskbar مانند Taskbar ویندوز مدیاپلیر . یعنی دکمه داشته باشد .
74774
74777

خب این یک کار جالبیه که می تونید توی ویندوز 7 انجام بدید ، راستی این رو هم بگم که خود ماکروسافت هم از همین طریقی که الان میگم استفاده می کنه .

چندنکته :


باید نوع تصویری که داخل دکمه ها می گذارید ، Icon باشد !
حداکثر 7 دکمه می توانید بگذارید .
شما زمانی می توانید دکمه ای را مخفی کنید که به برنامه اضافه شده باشند .
شما اجازه اضافه یا کم کردن دکمه ، بعد از زمانی که برای اولین بار دکمه ها را اضافه کردید ندارید .(خیلی مهم)


بعد از طریق کد یا ازطریق Properties برنامتون دو عدد Icon به Resourceهی برنامتون اضافه کنید .
این کد رو توی برنامتون کپی کنید :
و بجای Icon_Name اسم اون آیکون و بجای ToolTip ، متن مورد نظرتونو بذارید .!!!!!!
Imports Microsoft.WindowsAPICodePack
Imports Microsoft.WindowsAPICodePack.Taskbar
Public Class Form1
Dim WithEvents button1 As New ThumbnailToolbarButton(My.Resources.Icon_Name1, "ToolTip1")
Dim WithEvents button2 As New ThumbnailToolbarButton(My.Resources.Icon_Name2, "ToolTip2")
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler button1.Click, AddressOf button_click
AddHandler button2.Click, AddressOf button_click
TaskbarManager.Instance.ThumbnailToolbars.AddButto ns(Me.Handle, {button1, button2})
End Sub
Public Sub button_click(ByVal sender As Object, ByVal e As ThumbnailButtonClickedEventArgs)
MsgBox(e.ThumbnailButton.Tooltip)
End Sub
End Class


حالا بگم این کد ها چی هستن ، اول از همه شما عدد دکمه تعری میکنید با ToolTipهای دلخواه (کسانی که نمی دونند ToolTip چیه باید بگم همون چیزیه که وقتی موس را روی آبجکتی قرار می دید توضیحاتی توی یک صفحه ی زرد رنگ کنار موس دیده می شه) .
بعد از طریق کد addHandler تعریف میکنید وقتی روی دکمه ی ساخته شده کلیک کنید کامپیوتر کدام بخش رو برای رویداد کلیک همون دکمه اجرا کنه !!! خلاصه اینکه مسیر می دید بعد کلیک کوم بخش اجرا بشه .

آموزش 3 : طبقه بندی لینک ها در Taskbar

خب یک کار دیگه می خواهیم انجام بدیم ، می خواهیم اطلاعات رو داخل لیستی که وقتی روی آیکون برنامتون تو تسکبار راست کلیک می کنید رو طبقه بندی کنیم ، مثل شکل پایینی :

74884

خب اول از همه اون فایلی که تو آموزش 1 قرار دادم رو دانلود کنید .

برای کار اول می خواهیم لیست برنامه ها رو داخل زیر مجموعه ی Tasks قرار بدیم ، مثل شکل ، به این لیستی که قراره اضفه کنیم ، JumpList میگویند . توی Form_Load برنامتون این کد ها رو اضافه کنید ،

Dim Jlist as JumpList
Jlist = Jumplist.CreateJumplist
Jlist.ClearAllUserTasks

Dim Item0 as new JumplistLink("Cmd.exe","Cmd") With {.IconReference = new IconReference("Cmd.exe",0)
Dim Item1 as new JumplistLink("Calc.exe","Calculator") With {.IconReference = new IconReference("Calc.exe",0)

Jlist.AddUserTasks(Item0)
Jlist.AddUserTasks(New JumpListSeperator)
Jlist.AddUserTasks(Item1)


خب برنامرو اجرا کنید نتیجه رو ببینید ، حالا می خواهیم توی یه سربرگ دلخواه اضافه کنیم ، مثله New Category 1 در شکل ، خب ادامه کد رو به این صورت بنویسید :

Dim Category as New JumplistCustomCategory ("New Category 1")
Dim Item2 as new JumpListLisnk("NotePad.exe","NotePad") With {.Iconreference = New IconReference("NotePad.exe",0)
Dim Item3 as new JumpListLisnk("mspaint.exe","Paint") With {.Iconreference = New IconReference("mspaint.exe",0)
Category.addJumplistItems(Item2)
Category.addJumplistItems(Item3)

Jlist.addCustomCategories(Category)

Jlist.KnownCategoryToDisplay = JumpListKnownCategoryType.Frequent

Jlist.referesh()


خب این آموزش هم تموم شد ، در ضمن اون خط یکی مونده به آخر ، اون سربرگی رو که زیاد استفاده شده رو میاره روی بقیه سربرگ ها . این به نظر من یکی از پر کاربرد ترین امکانات Taskbar هستش که شما می تونید فایل هایی که کاربر برنامتون از اونها استفاده می کنه رو توی این لیست اضافه کنید .

نظر یادتون نره ،:چشمک:
ادامه دارد .

bzdesign
یک شنبه 13 شهریور 1390, 00:31 صبح
دوست عزیز من با نحوه ی آدرس دادن آیکون به مشکل خوردم. هر کدی مینویسم ارور میده.
دستور لازم برای آدرس دادن فایل آیکون دلخواهمون که تو Resource برناممون از قبل قرارش دادیم چیه ؟
هر جوری ،با هر اسمی میزنم میگه آیکون عضو Resource نیست
یه مثال عملی لطف میکنید بزارید ؟

ArashRoshan
یک شنبه 13 شهریور 1390, 11:57 صبح
سلام
این یک مثال که هردو آموزش 1 و 2 رو توش گذاشتم .
این مثال امکانات جدیدی هم به شما نشون میده :

حالت Normal :

74812

حالت Inderterminate :

74813

حالت Error :

74810

حالت Pause :

74811

فقط احتمالا شما دوباره باید مسیر فایل Shell رو توی این مثال بدید ، چون حجم فایل زیاد می شد ، از توش پاک کردم ،

74818

ArashRoshan
دوشنبه 14 شهریور 1390, 12:58 عصر
آموزش جدید در پست 1 قرار داده شد .

ArashRoshan
سه شنبه 29 شهریور 1390, 23:15 عصر
حالا خوبه گفتم نظر بدید !! یا هر سوال دیگه دارید بپرسید ؟؟؟ یعن هیچ کدوم توضیحی ، نظری یا چیز دیگه ندارید ؟؟؟!:لبخندساده:

bzdesign
سه شنبه 29 شهریور 1390, 23:34 عصر
فوق العادست. دیگه از شدت تشکر زدگی به زبون اومدم !!!! یا ایهاالناس ! بیاید اینجا رو ببینید

bzdesign
سه شنبه 29 شهریور 1390, 23:59 عصر
دوست عزیز ممنون از لطفت منتها من حتی بعد از افزودن shell باز هم برای اجرای پروژه ای که گذاشتید به کلی ارور میخورم. بی زحمت یه نگاهی به عکسی که گذاشتم بندازیدو ممنون میشم بگید مشکل چیه ؟
بی صبرانه منتظر اجرای پروژم

عکس
(http://20uploads.com/images/1390/shahrivar/653e_sdf.jpg)

ArashRoshan
پنج شنبه 31 شهریور 1390, 15:42 عصر
سلام
راستش من این برنامه رو توی VB.net 2010 نوشتم ، ولی ورژن شما 2008 هستش ، (چون اشکال از Setting و Resource گرفته) شما این کارها رو انجام بده ببین درست میشه :

1 - ایجاد پروژه ی جدید در VB.net 2008
2 - اضافه کردن shell به برنامه .
3 - اضافه کردن 2 عدد Resource به برنامه ( داخل Properties برنامه داخل بخش Resources)
4 - جایگزینی این 2 عدد Resource به جای Resourceهای بالا . (My.Resources.name aks jadid <-- My.Resources._1381_Cog)
5 - اضافه کردن بقیه کد مانند بالا به برنامه .
6 - نوشیدن یک لیوان چای ... (جهت مزاح :چشمک:)
6 - اجرای برنامه .

به احتمال زیاد برنامه درست میشه (احتمالا 100%) . اگه نشد باز هم اصلاع بده ، از بقیه دوستان هم خواهش می کنم امتحان کنند (چه 2010 و چه 2008) و نتیجه رو بگن .

ممنون.

bzdesign
جمعه 01 مهر 1390, 00:52 صبح
دوست خوبم ممنون از پاسخت. شما هم الان میتونی یک فنجان چای بنوشی:قلب: زحماتت به ثمر نشست. با VS2010 تست کردم از شوق و جوابمو گرفتم.
انشالله با 2008 هم تست میگیرم و خدمتت عرض میکنم نتیجه ی کار رو

peyman677
پنج شنبه 03 اسفند 1391, 09:23 صبح
سلام من انجام دادم نمیدونم چرا این ارور رو میزنه به نظر شما مشکل از کجاست ؟
An error occurred creating the form. See Exception.InnerException for details. The error is: Could not load file or assembly 'Microsoft.WindowsAPICodePack, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

xxnagin
پنج شنبه 03 اسفند 1391, 09:39 صبح
سلام
به خاطر ورژنش هستش
شما مجموعه کاملش را میتونی از اینجا (http://www.codeproject.com/Articles/56376/Windows-7-New-Features-step-by-step-in-vb-net-and)دریافت کنید
http://archive.msdn.microsoft.com/WindowsAPICodePack/Release/ProjectReleases.aspx?ReleaseId=4906
http://www.codeproject.com/Articles/56376/Windows-7-New-Features-step-by-step-in-vb-net-and