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 Shell , 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 nesneleriscreen shot of the default shortcut menu for file system objectsscreen shot of the default shortcut menu for file system objectsiçin varsayılan kısayol menüsünün ekran görüntüsünü

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 defteri tarafından verb ile 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.

verb, Shell tarafından ilişkili komutu tanımlamak için kullanılan basit bir metin dizesidir. Her verb bir komut, komutu bir konsol penceresinde veya toplu iş (.bat) dosyasında başlatmak için kullanılan komut dizesine karşılık gelir. Örneğin, açıkverb 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. Dizenin boşluk içeremeyeceğinden emin olamayacağınız için, her zaman "%1" gibi dizeye dönüştürülen Shell değişkenlerle tırnak işaretleri kullanmalısınız.

 

Fiiller, kendileriyle ilişkilendirilmiş bir görüntüleme dizesine de sahip olabilir. Bu dize, dizenin verb kendisi yerine kısayol menüsünde görüntülenir. Ö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ı verb herhangi bir dil ile kullanılabilir ve sistem otomatik olarak doğru yerelleştirilmiş bir görüntüleme dizisi oluşturur. Örneğin, open'ınverb görüntü dizesi bir İngilizce sisteminde Aç olarak ve Almanca bir sistemde Öffnen olarak ayarlanı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 verb da 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şkili uygulamanın ProgID anahtarının altına bir Shell alt anahtar ekleyin. İsteğe bağlı olarak, dosya türü için varsayılan verb değeri, Shell alt anahtarın varsayılan değeri yaparak tanımlayabilirsiniz.

Varsayılan verb , kısayol menüsünde ilk olarak görüntülenir. Amacı, Shell için verb sağlamaktır, böylece ShellExecuteEx çağrıldığında ancak verb belirtilmediğinde kullanılabilir. Shell, ShellExecuteEx bu şekilde kullanıldığında varsayılanı verb seçmemelidir. Windows Shell2000 ve üzeri sistemlerde bulunan 5.0 ve üzeri sürümler için, Shell aşağıdaki listeden sağlanan verb ilk sürümü kullanır. Hiçbiri kullanılabilir değilse, işlem başarısız olur.

  • Açık verb
  • Varsayılan verb
  • Kayıt defterindeki ilk verb
  • Openwith verb

Sürüm 5.0'ın önceki sürümleri için Shell üçüncü öğeyi atla.

Alt anahtarın Shell altında, eklemek istediğiniz her verb biri için bir alt anahtar oluşturun. Bu alt anahtarların her birinin görüntü dizesine verbayarlanmış bir REG_SZ değeri 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, verb dize görüntülenir. Her verb alt anahtar için, varsayılan değeri komut dizesi olarak 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çık, doit, print ve printto fiilleri vardır ve doit varsayılan verbolarak 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ı olmadığından, D tuşuna verbbasılarak seçilebilen "&Do It" görünen adı atanır. Printto verb 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.

Fiiller, verb anahtarına SuppressionPolicy değeri eklenerek ilke ayarları aracılığıyla gizlenebilir. SuppressionPolicy değerini ilke kimliği olarak ayarlayın. Politika açıksa, verb ve ilişkili kısayol menüsü girişi bastırılır. Olası ilke kimliği değerleri için bkz. KISITLAMALAR numaralandırması.

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

Önceden tanımlanmış Shell birçok nesnenin 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.

Uzantı İşleyicileri Oluşturma'nın ShellÖnceden Tanımlanmış Shell Nesneler bölümünde önceden tanımlanmış nesnelerin listesi bulunabilir. Kısayol menüleri kayıt defterine fiiller eklenerek genişletilebilen önceden tanımlanmış Shell nesneler tabloda "Verb" 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, Shellyeni alt menüsüne eklenir. 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ı'nı seçtiğindeShell, "Yeni MyProgram Application.myp" adlı bir dosya oluşturur ve MyProgram.exeiletir.

Özel yeni menüscreen shot of the custom new menuscreen shot of the custom new menuekran 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