Places Çubuğunu Özelleştirin

Murat Yıldırımoğlu, Windows 2000 Magazine dergisinden çeviri

 

 

Win2K’in ve Office 2000’in Open diyalog kutusunda yer alan Places çubuğunda yer alan klasörleri değiştirin

 

 

Microsoft, Windows 2000’de kullanıcı arayüzüne (user interface; UI) bazı yenilikler getirdi. Bu yenilikler genelde kullanıcıların sistemle etkileşimini kolaylaştırma amacı taşıyordu. Bu yeniliklerin kullanışlılığı başından beri tartışma konusu oldu. Özellikle HTML temelli Active Desktop, Windows NT 4.0 kullanıcıları için büyük bir yenilik anlamına geliyor. Beğensek de, beğenmesek de yeni UI, bilgili kullanıcılara kendi masaüstlerini kişiselleşitmeleri için olanak sağlıyor, onların günlük işlerini daha verimli yapabilmelerini sağlıyor. UI’deki bu yeniliklerin bir tanesini nasıl özelleştirebileceğimize bir bakalım: Open diyalog kutusundaki Places (Yerler) çubuğu.

 

Open Diyalog Kutusu

Bazı uygulamaların Open diyalog kutusunun Win2K’de, NT 4.0’dan farklı şekilde açıldığı dikkatinizi çekmiştir. Win2K’in Notepad programından File, Open ile açtığım Open diyalog kutusu Şekil 1’de görülüyor. Win2K’deki diyalog kutusunda daha önceki sürümlerde olmayan bir öğe var: Pencerenin sol tarafındaki dikey çubuk. Win2K yazılım geliştirme kitinde (software development kit;SDK) bu çubuğa Places çubuğu deniyor.

          Places çubuğu, kullanıcıların en çok eriştikleri klasörlere bir tıklamayla ulaşabilmelerini amaçlıyor. Bu çubukta en çok beş düğme olabiliyor ve herbir düğme ayrı bir sistem klasörüne işaret ediyor. Bu düğmelerden herhangi birine bir kez tıkladığınızda seçili klasörün içeriği görüntülenir.

          Places çubuğu varsayılan olarak şu klasörleri içerir: History, Desktop, My Documents, My Computer ve My Network Places. History klasörü en son erişilen belgeleri ve klasörleri içerir. Bu yüzden, son açılan dosyaları ilk olarak burada arayabilirsiniz.  Kullanıcıların çoğu diğer dört klasöre de sık sık erişirler. 

          Places çubuğunun varsayılan şekli kullanıcıların çoğunu tatminedecek şekildedir. Ama bu varsayılan şekil size uymayabilir. Uymuyorsa Places çubuğunu özelleştirmek isteyebilirsiniz.

 

Places Çubuğunu Değiştirme

Places çubuğundaki klasörlerin bilgisini  Kayıtta ya da başka bir yerde açık olarak görüntülenir şekilde bulamazsınız. Bu yüzden Kayıtta epey bir yeri değiştirmek gerekir.

 

Places çubuğu sistem düzeyinde bir kaynak olarak değerlendirilir. Bu yüzden Places klasörlerini değiştirdiğinizde Places çubuğunun içeriğini tüm Win2K uygulamaları için değiştirmiş olursunuz. Yani, Notepad için ayrı, Paint için ayrı bir klasör grubu tanımlayamazsınız. Win2K altında çalışan tüm programlar aynı klasör listesine sahip olacaklardır; ya başlangıçta var olan standart liste ya da değiştirilmiş liste. (Microsoft Office 2000 programları farklı klasörlere sahip oalbilirler ama bu konuya ilişkin bilgiyi daha sonra vereceğim.)

          Places çubuğu için yeni bir klasör grubu belirlemenin ilk adımı sisteme varsayılan listeyi istemediğinizi söylemektir. Bir kayıt editörü ile  HKEY_CURRENT_USER\Software\Microsoft\Windows\

CurrentVersion\Policies\ComDlg32\Placesbar altanahtarını yaratın. (Policies altanahtarı sizde zaten bulunuyor olabilir ama ComDlg32 altanahtarı bulunmaz.) Bu altanahtarı yarattıktan sonra bir programın Open diyalog kutusuna bakarsanız Place çubuğunun boş olduğunu göreceksiniz. Placesbar altanahtarı Win2K’e standart çubuk içeriğini istemediğinizi gösterir. Henüz hangi klasörleri istediğinizi de söylemediniz.

          Placesbar altanahtarı altına Place0 ile Place4 arasında beş adet kayıt girebilirsiniz. Buraya Place5 ya da Place6 gibi başka kayıtlar girebilirsiniz ama Win2K bunları değerlendirmez. Klasör kayıtlarını sırayla girmelisiniz; yani, Place0’dan sonra Palce1’i atlayıp Place2’yi girmemelisiniz. Bu şekilde giriş yapılırsa Places çubuğunda klasörler tahmin edilemez bir şekilde görünürler.

          Placesbar altanahtarına klasör bilgisi girerken var olan klasörleri göstermenin bir yolu klasörlerin tam adresini bir karakter dizisi (string) olarak vermektir. Bu şekildeki Kayıt değerinin tipi REG_SZ şeklinde olmalıdır (eğer ad içinde çevresel değişkenler kullanıyorsanız REG_EXPAND_SZ şeklinde olmalıdır).

          Buraya gerçek adresleri değişebilen ya da anımsaması güç olan sistem klasörlerini de yazabilirsiniz. (Düşünmeden söyleyin bakalım, My Documents klasörü gerçekte hangi klasöre karşılık gelir?) Eğer My Documents  ya da Favorites klasörü için bir kayıt girmek istiyorsanız bu türlü klasörlerin sayısal kimlik numarasını kullanabilirsiniz. Microsoft Bu kimlik numaralarını CSIDL olarak adlandırıyor. Tablo 1’de sık kullanılan sistem klasörlerinin kimlik numaraları görüntüleniyor. Bu türlü yerleri belirtmek için Placesbar altanahtarında REG_DWORD tipinde kayıtlar yaratın.

 

Places Çubuğunu Özelleştirmeyi Otomatikleştirme

Liste 1’de Places çubuğundaki yerleri okumayı ve değiştirmeyi sağlayan, setplaces.vbs adında küçük bir VBScript uygulaması görünüyor. İlk betik değiştirmek istediğiniz klasör sayısını soruyor. Eğer 0 ile 4 arasında bir değer girerseniz betik devam ediyor; eğer klasör adını girmek isterseniz Yes’e basmanızı, klasör kimlik numarasını girmek isterseniz  No’ya basmanızı istiyor. Yes’e bastığınızda betik sizden bir klasör adresi girmenizi isteyecektir. Değeri girdiğinizde betik, REG_SZ tipinde bir  değer yaratacaktır. Eğer No’ya basarsanız betik sizden klasör kimlik numarasını girmenizi ister. Bunu yapınca betik bu sefer REG_DWORD tipinde bir değer yaratacaktır. Sonra betik Kayıtı uygun bir şekilde düzenler. Bir yeri böyle girdikten sonra betik bir başka klasör için de bilgi girmenizi isteyecektir.

          Setplaces.vbs, hata yönetimiyle ilgilenmiyor. Kullanıcı arayüzü de oldukça kaba. Eğer bu betiği  daha zengin bir uygulamaya çevirmek isterseniz betiği Visual Basic (VB) koduna çevirin.

          Liste 2’de restoredefaultplaces.vbs betiği görüntüleniyor. Bu betik Placebar altanahtarını siliyor, dolayısıyla varsayılan yerlere kavuşuyoruz. Siz ya da bir uygulama yaratmadıkça Placesbar altanahtarı bulunmaz. Placesbar altanahtarı yoksa da Places çubuğunun içeriği varsayılan klasörlere döner.

 

Office 2000’deki Places Çubuğu

Yukarda açıkladığım Kayıt değişiklikleri Win2K ortak diyalog kütüphanesindeki diyalog kutularını kullanan uygulamaları etkiler. Office 2000 uygulamaları bunları değil kendilerine özel bir kütüphaneyi kullanır. Bu yüzden yukardaki işlemler Word ya da Excel programlarındaki çubuklar üzerinde bir etkiye sahip değildir.

          Neyse ki Office 2000’de de Place çubuğunu kişiselleştirmek için bir yol bulunmaktadır. İlgili Kayıt altanahtarı HKEY_

CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places’dır. Ama Places çubuğunu özelleştirmek için bu altanahtarı bilmek zorunda değilsiniz. Microsoft, Office 2000 uygulamalarının Places çubuğunun içeriğini değiştirmek için güzel bir program sağlamaktadır.  Bu programın adı places.exe’dir ve uygulamaların Tools menüsüne eklenebilir. Bu program hakkında Microsoft’un http://support.microsoft.com/

support/kb/articles/q260/1/90.asp adresindeki “INFO: Places COM Add-In for Office 2000 Available for Download  (INFO: Office 2000 İçin Places COM eklentisi İndirilebilir) başlıklı makalesinde bilgi bulabilir ve buradan indirebilirsiniz. İndirilen paket içinde bu programın VB kaynak koduyla ve bir readme.doc belgesiyle bulunmaktadır.  

          İndirdikten ve yeni bir klasöre bu paketi açtıktan sonra üstüne çift tıklayın. Sonra Start, Run’dan şunu yazın:

 

regsvr32 <adres>\places.dll

 

Karşınıza çıkan kutuda OK’e basarak o klasörde bulunan programı (places.dll) kaydettirin. Eğer bu anda açık bir Office 2000 programınız varsa kapatın, tekrar açın. Programın Tools menüsünde Set Places şeklinde yeni bir öğe görünecektir. Bu öğeyi kullanarak Places çubuğundaki klasörleri değiştirebilirsiniz. Win2K uygulamalarının tersine Office 2000 uygulamaları küçük ikonları destekler. Eğer bu seçeneği seçerseniz çubuktaki klasörlerin sayısını iki kat arttırabilirsiniz. Bir Office uygulamasında yaptığınız değişiklikler diğer Office 2000 uygulamaları için de geçerli olacaktır.

 

Iyi bir yazılıma giden yol iddialı niyetlerle ve bazen de güzel programlarla döşenmiştir. Places çubuğu zamandan kazandıran bir özellikletir. İçindeki klasörleri değiştirerek bu özelliğin sizin için daha anlamlı olmasını sağlayabilirsiniz. Şu anda Win2K ve Office 2000 içindeki çubukları özelleştirmeye yetecek bilgiye sahipsiniz.

 

Dino Esposito Roma’da çalışan bir eğitmen ve danışmandır. Zamanının çoğunu ASP.NET ve ADO.NET kavramlarını öğreterek ve kitap yazarak geçirmektedir. En yeni kitabı Professional ASP Data Access adını taşımaktadır (Wrox Press). Kendisine dino@win2000mag.com adresinden ulaşabilirsiniz.

 

 

 

ARA METİN:

 

ŞEKİL  1:

Places çubuğuna sahip bir Open diyalog kutusu

 

TABLO 1: Sistem klasörleri ve onların kimlik numaraları

Klasör         ID

Fonts 20

Recycle Bin 10

My Computer      17

Dial-up       49

Printers       4

Favorites    6

Send To      9

My Pictures          39

History       34

My Network Places       18

My Documents     5

Windows    36

 

LİSTE 1: Setplaces.vbs

‘ Constants

const APP_TITLE = “SetPlaces

const REG_PLACESBAR = “HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\ComDlg32\Placesbar\”

‘--------------------------------

 

Dim place                    ‘ contains the Place number

Dim canContinue              boolean guard

 

‘ Attempt to get the number of the place to work on.

canContinue = True

While canContinue

  place = InputBox(“Enter the place number (0 thru 4)”, APP_TITLE, 0)

 

  ‘ You canceled the dialog.

  If place = “” Then

    WScript.Quit

  End If

 

  If place > 4 Then

    MsgBox “Invalid place number!”, 16, APP_TITLE

  Else

    ‘ Got a valid place number, now read info from the registry.

    ChangePlace place

  End If

Wend

 

‘--------------------------------

ChangePlace (place)

‘--------------------------------

Sub ChangePlace (place)

  Dim shell, curPath, buf, rc, newPath, theType

 

  Set shell = CreateObject(WScript.Shell”)

  On Error Resume Next

  curPath = shell.RegRead(REG_PLACESBAR & “Place” & place)

  On Error Goto 0

 

  ‘ Ensure a default value.

  If curPath = “” Then curPath = “the default item”

 

  buf = “”

  buf = buf & “Place” & place & “ is currently set to “ & _

        Chr(34) & curPath & Chr(34) & vbCrLf & vbCrLf & _

        “Click YES to set a file system folder” & vbCrLf & _

        “Click NO to set a special system folder” & vbCrLf & _

        “Click CANCEL to exit”

 

  rc = MsgBox(buf, 3, APP_TITLE)

 

  ‘ YES=6, NO=7, CANCEL=2

  If rc = vbCancel Then Exit Sub

 

  ‘ Change the place.

  Select Case rc

    Case vbYes

      newPath = InputBox(“Enter the new folder path”, APP_TITLE, curPath)

      If newPath = “” Then Exit Sub

      theAşağıdaki komutu yazın:= “REG_SZ”

    Case vbNo

      buf = “”

      buf = buf & “Choose the new folder.” & vbCrLf & vbCrLf & _

                  “5 - My Documents” & vbCrLf & _

                  “6 - Favorites” & vbCrLf & _

                  “17 - My Computer” & vbCrLf & _

                  “18 - My Network Places” & vbCrLf & _

                  “36 - Windows” & vbCrLf & _

                  “34 - History”

      newPath = InputBox(buf, APP_TITLE, curPath)

      If newPath = “” Then Exit Sub

      theAşağıdaki komutu yazın:= “REG_DWORD”

  End Select

 

  shell.RegWrite REG_PLACESBAR & “Place” & place, newPath, theType

End Sub

 

LISTING 2:  Restoredefaultplaces.vbs

‘ Constants

const APP_TITLE = “ RestoreDefaultPlaces

const REG_PLACESBAR = “HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\ComDlg32\Placesbar\”

 

‘ Would you like to proceed?

rc = MsgBox(“Click OK to restore the standard configuration “ & _

       for the File Open Places Bar.”, 1, APP_TITLE)

 

If rc <> 1 Then

  WScript.Quit

End If

 

‘ Delete any registry tree under Policies\ComDlg32. This step will reenable

‘ the standard configuration.

Set shell = CreateObject(WScript.Shell”)

 

‘ You might have the standard configuration already.

On Error Resume Next

shell.RegDelete(REG_PLACESBAR)

 

‘ Done

MsgBox “Done”, , APP_TITLE