Aracılığıyla paylaş


Kısayol Menülerini Genişletme

Normalde bir nesneye sağ tıklanması, kısayol menüsününgörüntülenmesine neden olur. Bu menü, kullanıcının nesne üzerinde çeşitli eylemler gerçekleştirmek için seçebileceği komutların listesini içerir. Bu bölüm, dosya sistemi nesneleri için kısayol menülerine giriş niteliğindedir.

Burada ek bilgiler sağlanır:

Dosya Sistemi Nesneleri için Kısayol Menüleri

Kullanıcı, Windows Gezgini'nde veya masaüstünde görüntülenen dosya gibi bir nesneye sağ tıkladığında, komut listesini içeren bir kısayol menüsü görüntülenir. Kullanıcı daha sonra uygun komutu seçerek dosya üzerinde açma veya silme gibi bir eylem gerçekleştirebilir.

Kısayol menüleri genellikle dosya yönetimi için kullanıldığından, Kabuk herhangi bir dosyanın kısayol menüsünde görünen Kes ve Kopyala gibi bir dizi varsayılan komut sağlar. Birlikte Aç varsayılan bir komut olsa da, .wav gibi bazı standart dosya türleri için görüntülenmediğini unutmayın. Özelleştirme Simgeleri'de örnek olarak kullanılan belgelerim dizininin aşağıdaki çiziminde, MyDocs4.xyz sağ tıklanarak görüntülenen varsayılan kısayol menüsü gösterilir.

Dosya sistemi nesneleri

MyDocs4.xyz varsayılan kısayol menüsünü göstermesinin nedeni, kayıtlı birdosya türünün üyesi olmamasıdır. Öte yandan, .txt kayıtlı bir dosya türüdür. .txt dosyalardan birine sağ tıklarsanız, bunun yerine üst bölümünde iki ek komutun bulunduğu bir kısayol menüsü görürsünüz: Aç ve Yazdır'ı.

Dosya sistemi nesneleri için özelleştirilmiş kısayol menüsünün ekran görüntüsü

Bir dosya türü kaydedildikten sonra kısayol menüsünü ek komutlarla genişletebilirsiniz. Bu türdeki herhangi bir dosya sağ tıklandığında varsayılan komutların üzerinde görüntülenirler. Bu şekilde eklenen komutların çoğu Yazdırma veya Aç gibi yaygın komutlar olsa da, kullanıcının yararlı bulabileceği herhangi bir komutu ekleyebilirsiniz.

Bir dosya türünün kısayol menüsünü genişletmek için gereken tek şey, her komut için bir kayıt defteri girdisi oluşturmaktır. Daha karmaşık bir yaklaşım, bir kısayol menü işleyicisi uygulamaktır. Bu, dosya türü için kısayol menüsünü dosya temelinde genişletmenizi sağlar. Daha fazla bilgi için bkz. Bağlam Menüsü İşleyicileri Oluşturma.

Kısayol Menüsü Fiilleri

Kısayol menüsündeki her komut kayıt defterinde fiiltarafından tanımlanır. Bu fiiller, uygulamaları program aracılığıyla başlatırken ShellExecuteEx tarafından kullanılanlarla aynıdır. ShellExecuteExkullanımı hakkında daha fazla bilgi için, Uygulamaları Başlatmabölümündeki tartışmaya bakın.

Fiil, Shell tarafından ilişkili komutu tanımlamak için kullanılan basit bir metin dizesidir. Her bir fiil, bir konsol penceresinde veya toplu iş (.bat) dosyasında başlatmak için kullanılan komut dizesi'e karşılık gelir. Örneğin, açma fiili normalde bir dosyayı açmak için bir program başlatır. Komut dizesi genellikle şöyle görünür:

"My Program.exe" "%1"

"%1", dosya adıyla sağlanan bir komut satırı parametresi için standart yer tutucudur. Örneğin, sekmeli görünümde görüntülenecek belirli bir sayfayı belirtebilir.

Not

Komut dizesinin herhangi bir öğesi boşluk içeriyorsa veya içerebilecekse, tırnak içine alınmalıdır. Aksi takdirde, öğe bir boşluk içeriyorsa düzgün bir şekilde ayrıştırılmaz. Örneğin, "My Program.exe", uygulamayı düzgün bir şekilde başlatacaktır. Eğer My Program.exekullanırsanız, sistem ilk komut satırı bağımsız değişkeni olarak "Program.exe" ile "My" başlatmayı dener. Her zaman, Shell tarafından dizelere genişletilen "%1" gibi bağımsız değişkenlerle tırnak işaretleri kullanmanız gerekir, çünkü bu dizenin boşluk içermeyeceğinden emin olamazsınız.

 

Fiillere, fiil dizesi yerine kısayol menüsünde görüntülenen bir görüntüleme dizesi de eklenebilir. Örneğin, openas için görüntüleme dizesi Birlikte Aç şeklindedir. Normal menü dizelerinde olduğu gibi, görüntü dizesindeki ve işareti (&) komutun klavye seçimine izin verir.

Kurallı Fiiller

Genel olarak, uygulamalar tanımladıkları fiiller için yerelleştirilmiş görüntü dizeleri sağlamakla sorumludur. Ancak, bir dil bağımsızlığı derecesi sağlamak için sistem, kurallı fiilleradlı standart bir yaygın fiil kümesi tanımlar. Kurallı fiil herhangi bir dille kullanılabilir ve sistem otomatik olarak düzgün yerelleştirilmiş bir görüntü dizesi oluşturur. Örneğin, açık fiilinin görüntü dizesi, İngilizce bir sistemde Open olarak, Almanca bir sistemde ise Öffnen olarak ayarlanacaktır.

Kurallı fiiller şunlardır:

Değer Açıklama
açık Dosya veya klasörü açar.
yenisini aç Dosya veya klasörü yeni bir pencerede açar.
yazdırmak Dosyayı yazdırır.
keşfetmek Klasör seçili durumdayken Windows Gezgini'ni açar.
bulmak Klasör varsayılan arama konumu olarak ayarlanmış Windows Search iletişim kutusunu açar.
openas Birlikte Aç iletişim kutusunu açar.
Özellikler Nesnenin özellik sayfasını açar.

 

Printto fiili de kurallıdır ancak hiçbir zaman görüntülenmez. Kullanıcının dosyayı bir yazıcı nesnesine sürükleyerek yazdırmasına olanak tanır.

Genişletilmiş Fiiller

Kullanıcı bir nesneye sağ tıkladığında, kısayol menüsü tüm normal fiilleri içerir. Ancak, desteklemek istediğiniz ancak her kısayol menüsünde görüntülenmeyen komutlar olabilir. Örneğin, yaygın olarak kullanılmayan veya deneyimli kullanıcılara yönelik komutlarınız olabilir. Bu nedenle, bir veya daha fazla genişletilmiş fiilde tanımlayabilirsiniz. Bu fiiller aynı zamanda karakter dizeleridir ve normal fiillere benzer. Normal fiillerden kayıtlı oldukları şekilde ayırt edilirler. Genişletilmiş fiillerle ilişkili komutlara erişebilmek için kullanıcının SHIFT tuşuna basarken bir nesneye sağ tıklaması gerekir. Daha sonra genişletilmiş fiiller normal fiillerle birlikte görüntülenir.

Dosya Türü için Kısayol Menüsünü Genişletme

Dosya türünün kısayol menüsünü genişletmenin en kolay yolu kayıt defteridir. Bunu yapmak için, dosya türüyle ilişkilendirilmiş uygulamanın ProgID anahtarının altına bir Shell alt anahtarı ekleyin. Seçenek olarak, Shell alt anahtarının varsayılan değeri yaparak dosya türü için bir varsayılan fiil tanımlayabilirsiniz.

Varsayılan fiil, önce kısayol menüsünde görüntülenir. Amacı, ShellExecuteExçağrıldığında ancak hiçbir fiil belirtilmediğinde shell'e kullanabileceği bir fiil sağlamaktır. ShellExecuteEx bu şekilde kullanıldığında Kabuk varsayılan fiili her zaman seçmez. Shell, Windows 2000 ve sonraki sistemlerde bulunan Shell 5.0 ve sonraki sürümleri için aşağıdaki listeden sağlanan ilk fiili kullanır. Hiçbiri kullanılabilir değilse, işlem başarısız olur.

  • Açık fiil
  • Varsayılan fiil
  • Kayıt defterindeki ilk fiil
  • 'Openwith' fiili

Shell sürümü 5.0öncesindeki sürümler için üçüncü öğeyi atlayın.

Shell alt anahtarının altında, eklemek istediğiniz her fiil için bir alt anahtar oluşturun. Bu alt anahtarların her biri, fiilin görüntü dizesine ayarlanmış bir REG_SZ değerine sahip olacaktır. Sistem otomatik olarak düzgün yerelleştirilmiş bir dize görüntüleyebileceği için kurallı fiiller için görüntü dizesini atlayabilirsiniz. Görüntüleme dizesini kural dışı fiiller için atlarsanız, fiil dizesi görüntülenir. Her fiil alt anahtarı için, varsayılan değeri komut dizesi ile ayarlanmış bir komut alt anahtarı oluşturun.

Aşağıdaki çizimde, Dosya Türleri kullanılan .myp dosya türünün kısayol menüsü ve Simgeleri Özelleştirmegösterilmektedir. Artık kısayol menüsünde aç, doit, print ve printto fiilleri vardır ve varsayılan fiil olarak doit kullanılır. Kısayol menüsü şöyle görünür.

Özelleştirilmiş kısayol menüsünün ekran görüntüsü

Önceki çizimde gösterilen kısayol menüsünü genişletmek için kullanılan kayıt defteri girdileri şunlardır:

HKEY_CLASSES_ROOT
   .myp
      (Default) = MyProgram.1
   MyProgram.1
      (Default) = MyProgram Application
      Shell
         (Default) = doit
         open
            command
               (Default) = C:\MyDir\MyProgram.exe "%1"
         doit
            (Default) = &Do It
            command
               (Default) = C:\MyDir\MyProgram.exe /d "%1"
         print
            command
               (Default) = C:\MyDir\MyProgram.exe /p "%1"
         printto
            command
               (Default) = C:\MyDir\MyProgram.exe /p "%1" "%2" %3 %4

ile Aç komutu ilk ayırıcının üzerinde olsa da, sistem tarafından otomatik olarak oluşturulur ve kayıt defteri girdisi gerektirmez. Sistem, "aç" ve "yazdır" kurallı fiilleri için otomatik olarak görüntü adları oluşturur. Doit kurallı bir fiil olmadığından, D tuşuna basılarak seçilebilen "&Yap" görünen adı atanır. Printto fiili kısayol menüsünde görünmez, ancak dahil olmak kullanıcının dosyaları yazıcı simgesine bırakarak yazdırmasına olanak tanır. Bu örnekte, %1 dosya adını temsil eder ve yazıcı adını %2.

Fiillerin anahtarına SuppressionPolicy değeri eklenerek ilke ayarları aracılığıyla fiiller gizlenebilir. SuppressionPolicy değerini ilke kimliği olarak ayarlayın. İlke açıksa, fiil ve ilişkili kısayol menü girdisi gösterilmez. Olası ilke kimliği değerleri için bkz. KISITLAMALAR numaralandırması.

Önceden Tanımlanmış Kabuk Nesneleri için Kısayol Menüsünü Genişletme

Önceden tanımlanmış birçok Kabuk nesnesinin genişletilebilen kısayol menüleri vardır. Komutu tipik dosya türlerini kaydettiğiniz gibi kaydedin, ancak önceden tanımlanmış nesnenin adını dosya türü adı olarak kullanın.

Önceden tanımlanmış nesnelerin listesi, Kabuk Uzantısı İşleyicileri OluşturmaÖnceden Tanımlanmış Kabuk Nesneleri bölümünde bulunabilir. Kısayol menüleri kayıt defterine fiiller eklenerek genişletilebilen önceden tanımlanmış Shell nesneleri tabloda "Fiil" sözcüğüyle işaretlenir.

Rastgele Dosya Türlerini İşleyecek Bir Uygulamayı Kaydetme

Bu belgenin önceki bölümlerinde, belirli bir dosya türü için kısayol menüsü öğelerinin nasıl tanımlanacağı açıklanmıştır. Diğer şeylerin dışında, kısayol menüsünü tanımlamak, ilişkili uygulamanın dosya türünün bir üyesini nasıl açacağını belirtmenize olanak tanır. Ancak, Dosya Türleri'nde açıklandığı gibi, bir kullanıcı uygulamanızı uygulamayla ilişkilendirmediğiniz bir dosya türünü açmak için uygulamayı kullanmayı denediğinde kullanılacak ayrı bir varsayılan yordam da kaydedebilir. Varsayılan yordamı, kısayol menü öğelerini kaydettiğiniz gibi kaydettiğinizden bu konu burada ele alınmıştır.

Varsayılan yordam iki temel amaca hizmet eder. Bunlardan biri, rastgele bir dosya türünü açmak için uygulamanızın nasıl çağrılacağını belirtmektir. Örneğin, bilinmeyen bir dosya türünün açıldığını belirtmek için bir komut satırı bayrağı kullanabilirsiniz. Diğer amaç, bir dosya türünün kısayol menü öğeleri ve simge gibi çeşitli özelliklerini tanımlamaktır. Bir kullanıcı uygulamanızı ek bir dosya türüyle ilişkilendirirse, bu tür bu özelliklere sahip olur. Ek dosya türü daha önce başka bir uygulamayla ilişkilendirildiyse, bu özellikler özgünlerin yerini alır.

Varsayılan yordamı kaydetmek için, uygulamanızın ProgID değeri için oluşturduğunuz kayıt defteri anahtarlarını uygulamanın HKEY_CLASSES_ROOT\Applicationsalt anahtarının altına yerleştirin. Sisteme uygulamanız için kolay bir ad sağlamak için friendlyAppName değeri de ekleyebilirsiniz. Uygulamanın dostane adı, yürütülebilir dosyasından da ayıklanabilir, ancak bu yalnızca FriendlyAppName değeri yoksa geçerlidir. Aşağıdaki kayıt defteri parçası, kolay bir ad ve çeşitli kısayol menü öğelerini tanımlayan MyProgram.exe için örnek bir varsayılan yordamı gösterir. Komut dizeleri, uygulamaya rastgele bir dosya türü açtığını bildirmek için /a bayrağını içerir. DefaultIcon alt anahtarı eklerseniz genel bir simge kullanmalısınız.

HKEY_CLASSES_ROOT
   Applications
      MyProgram.exe
         FriendlyAppName = Friendly Name
         shell
            open
               command
                  (Default) = C:\MyDir\MyProgram.exe /a "%1"
            print
               command
                  (Default) = C:\MyDir\MyProgram.exe /a /p "%1"
            printto
               command
                  (Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2" %3 %4

Yeni Alt Menüyü Genişletme

Kullanıcı Windows Gezgini'nde Dosya menüsünü açtığında ilk komut Yeni. Bu komut seçildiğinde bir alt menü görüntülenir. Varsayılan olarak, Klasör ve Kısayololmak üzere kullanıcıların alt klasörler ve kısayollar oluşturmasına olanak sağlayan iki komut içerir. Bu alt menü, herhangi bir dosya türü için dosya oluşturma komutlarını içerecek şekilde genişletilebilir.

Yeni alt menüsüne dosya oluşturma komutu eklemek için, dosyalarınızın belirli bir dosya türü ile ilişkilendirilmiş olması gerekir. Dosya adı uzantısı anahtarının altına bir ShellNew alt anahtarı ekleyin. Dosya menüsünün Yeni komutu seçildiğinde, Kabuk bunu Yeni alt menüsüne ekler. Komutun görüntüleme dizesi, programın ProgID'sine atanan açıklayıcı dize olacaktır.

Dosya oluşturma yöntemini belirtmek için ShellNew alt anahtarına bir veya daha fazla veri değeri atayın. Kullanılabilir değerler aşağıdaki gibidir.

Değer Açıklama
Komut Bir uygulamayı yürütür. Bu, yürütülecek uygulamanın yolunu belirten REG_SZ bir değerdir. Örneğin, bunu bir sihirbazı başlatacak şekilde ayarlayabilirsiniz.
Veri Belirtilen verileri içeren bir dosya oluşturur. Veri, dosyanın verilerini içeren REG_BINARY türünde bir değerdir. NullFile veya FileName belirtilirse veriler yoksayılır.
Dosyaadı Belirtilen dosyanın kopyası olan bir dosya oluşturur. FileName, kopyalanacak dosyanın tam yoluna ayarlanmış bir REG_SZ değeridir.
NullDosya Boş bir dosya oluşturur. NullFile'a bir değer atanmadı. Eğer NullFile belirtilmişse, Data ve FileName değerleri yoksayılır.

 

Aşağıdaki çizim, örnek olarak kullanılan .myp dosya türü için Yeni alt menüsünü ve Dosya Türleri ile Simgeleri Özelleştirme'nin nasıl özelleştirildiğini göstermektedir. Artık MyProgram Application bir komutu vardır. Kullanıcı Yeni alt menüsünden MyProgram Uygulaması seçtiğinde, Kabuk "Yeni MyProgram Uygulaması.myp" adlı bir dosya oluşturur ve bunu MyProgram.exeiletir.

Özel yeni menüekran görüntüsü

Kayıt defteri girdisi şu şekildedir:

HKEY_CLASSES_ROOT
   .myp
      (Default) = MyProgram.1
      MyProgram.1
         ShellNew
            NullFile
   MyProgram.1
      (Default) = MyProgram Application
      DefaultIcon
         (Default) = C:\MyDir\MyProgram.exe,2
      Shell
         (Default) = doit
         open
            command
               (Default) = C:\MyDir\MyProgram.exe "%1"
         doit
            (Default) = &Do It
            command
               (Default) = C:\MyDir\MyProgram.exe /d "%1"
         print
            command
               (Default) = C:\MyDir\MyProgram.exe /p "%1"
         printto
            command
               (Default) = C:\MyDir\MyProgram.exe /p "%1" "%2" %3 %4