Windows 7 için JumpList hazırlamak.

0 dakikada yazıldı

7961 defa okundu

Düzenle

Windows 7 Taskbarındaki en kuvvetli araçlardan biri JumpList'ler.
Taskbardaki herhangi bir programın üzerine sağ tuş ile tıklarsanız
karşınızda yeni bir menü gelecektir. Bu menü uygulama bazlı olarak
değişebileceği gibi tamamen özelleştirilebiliyor da. Örneğin hızlıca
Outlook'u inceleyecek olursan Windows 7 ile beraber Outlook'a ait
JumpList menüsünde aslında hayatımızı gerçekten kolaylaştırabilecek
kısayollar ile karşılaşabiliriz.

Outlook'a ait JumpList karşınızda...
Outlook'a ait JumpList karşınızda...

Gördüğünüz üzere JumpList üzerinden neredeyse program içerisindeki ana
bölümlere ulaşmak veya en sık yapılan işlemlere hızlıca erişmek mümkün.
İşte biz de programlarımıza bu özellikleri kazandırabiliyoruz. Bunun
için her zamanki gibi
WindowsAPICodePack
ile beraber gelen Microsoft.WindowsAPICodePack.dll ve
Microsoft.WindowsAPICodePack.Shell.dll'i uygulamalarımızda referans
almamız gerekiyor. Gelin yeni bir WPF uygulaması yaratarak JumpList'e
nasıl hükmedebileceğimize bir göz atalım.

[VB]

        Dim JumpL =
JumpList.CreateJumpList()

 

        Dim JumpListGorev As New
JumpListLink("C:\Windows\notepad.exe", "Not al!")

        JumpL.AddUserTasks(JumpListGorev)

        JumpL.AddUserTasks(New
JumpListSeparator)

        JumpL.AddUserTasks(JumpListGorev)

        JumpL.Refresh()

Her uygulamada bir defaya mahsus olarak JumpList sınıfı üzerinden
CreateJumpList metodunu çağırmak durumundayız .Tavsiyem bu metodu
uygulamanızda bir Property haline getirerek duruma göre ilk çağrılışta
nesnenin yaratılması. Artık JumpList'imiz elimizde olduğuna göre hemen
JumpList'e farklı görevler ekleyebiliriz. Örneğimizdeki JumpListLink
nesnesinin amacı uygulama dışındaki bir başka uygulamayı çalıştırmak.
Basit bir şekilde Windows ile beraber gelen NotePad'i çağıracağız.
JumpListLink yaratırken verdiğimiz ikinci parametre JumpList üzerinde bu
komut ile eşleştirilecek olan metni tanımlıyor.

Son olarak bir önceki adımda yarattığımız JumpList nesnemize elimizdeki
JumpListLink'i AddUserTasks komutu ile ekliyoruz. Örnek olması
amacı ile yukarıdaki kod içerisinde aynı nesneyi iki kere JumpList'e
ekledim. Arada da ayrıca bir JumpListSeparator kullandım. Böylece siz de
JumpList'lerinizde eklediğiniz farklı komutları bu şekilde gruplayarak
birbirinden ayırabilirsiniz.

Kendimize özel bir JumpList örneği.
Kendimize özel bir JumpList örneği.

JumpListLink yaratırken harici dosyalara link vermemizin arkasında
aslında anlamlı nedenler var. JumpList'leri uygulamanızın bir parçası
gibi gözükse de aslında uygulamanız yokken de Taskbar'da
bulunabiliyorlar. Örneğin uygulamanızı kullanıcıların Taskbar'a
pinlediğini düşünelim. Bu durumda uygulamanız kapalı olsa da ikonu
taskbarda gözükecektir. Aynı şekilde uygulamanız kapalıyken ikonuna sağ
tıklanırsa JumpList de gösterilecektir. Hatta uygulamanızın en son
JumpList'i ayarladığı şekli ile gözükecektir!

Bizim örneğimizdeki uygulamayı taskbara pinlerseniz, uygulamayı
kapatsanız da doğrudan Notepad'i açabilirsiniz ve bu durumdan bizim
uygulamamızın haberi bile olmaz. Bu nedenle eğer kendi uygulamalarınıza
parametre gönderecekseniz uygun argümanlar ile uygulamanızı hedeflemek
durumundasınız.

Örnek kodumuzun son satırında da JumpList'e ait Refresh metodunu
çağırıyoruz. Böylece gerekli ayarlar Windows tarafından kaydediliyor.

Son açılan dosyalar? Sık açılan dosyalar?

İsterseniz JumpList üzerinde uygulamanız tarafından sıkça açılan
dosyaların veya en son açılan dosyaların gösterilmesini de
sağlayabilirsiniz. Bunun için tabi ki uygulamanızın çalıştığı sistemde
söz konusu dosya uzantılarının uygulamanız ile eşleştirilmiş olması
gerekiyor. Merak etmeyin, programınızı söz konusu uzantıların varsayılan
programı olarak ayarlamak zorunda değilsiniz, sadece eşleştirilmiş
olması yeterli olacaktır.

Expression Web ile açılan son dosyalar...
Expression Web ile açılan son dosyalar...

Sonrasında aşağıdaki gibi bir kod ile bu işlevselliği ister "son açılan
dosyalar" (Recent) ister "sıkça açılan dosyalar" (Frequent)
modunda aktif hale getirebilirsiniz.

[VB]

        JumpL.KnownCategoryToDisplay =
JumpListKnownCategoryType.Frequent

        JumpL.Refresh()

Eğer isterseniz siz de JumpList içerisinde bölümler yaratabilir ve bu
bölümlere ayrı ayrı isimler verebilirsiniz. Sonrasında her bölüme
istediğiniz kadar JumpListLink ekleme şansınız olacaktır.

[VB]

        Dim Kategori As New
JumpListCustomCategory("Özel
Kategori"
)

        Dim JumpListGorev As New
JumpListLink("C:\Windows\notepad.exe", "Not al!")

        Kategori.AddJumpListItems(JumpListGorev)

        JumpL.AddCustomCategories(Kategori)

 

        JumpL.Refresh()

İlk satırda yarattığımız JumpListCustomCategory nesnesine her
zamanki gibi AddJumpListItems ile yeni nesneler ekleyebiliriz. Tüm
bunlar söz konusu kategori içerisinde listelenecektir. Tüm bu
işlemlerden sonra JumpList üzerinden Refresh metodunu çağırmayı
unutmayın.

Özel kategorisi ile birlikte JumpList'imizin son hali.
Özel kategorisi ile birlikte JumpList'imizin son hali.

Hepinize kolay gelsin.

Örnek uygulama kaynak kodları - 12082009_8.rar (566,92
KB)