Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu başlığında, uygulamaların belirli senaryoları etkinleştirmek için gerekli olan kendileriyle ilgili bilgileri nasıl ortaya çıkarabileceği açıklanmaktadır. Bu, uygulamayı bulmak için gereken bilgileri, uygulamanın desteklediği fiilleri ve bir uygulamanın işleyebileceği dosya türlerini içerir.
Bu konu aşağıdaki gibi düzenlenmiştir:
- uygulama yürütülebilir bulma
- Uygulamaları Kaydetme
- Uygulama Yolları Alt Anahtarı Kullanma
- Uygulamalar Alt Anahtarı Kullanarak
- Fiilleri ve Diğer Dosya İlişkilendirme Bilgilerini kaydetme
- Algılanan Tür Kaydetmeyi
- İlgili konular
Not
Uygulamalar, Program Erişimini ve Bilgisayar Varsayılanlarını Ayarla (SPAD) ve Varsayılan Programlarınızı Ayarla (SYDP) denetim masası uygulamalarına da kaydedilebilir. SPAD ve SYDP uygulama kaydı hakkında bilgi için bkz. Dosya İlişkilendirmeleri ve Varsayılan Programlaryönergeleri ve Program Erişimi ve Bilgisayar Varsayılanlarını Ayarlama (SPAD).
Uygulama Yürütülebilir Dosyası Bulma
ShellExecuteEx işlevi, lpFile parametresinde yürütülebilir dosya adıyla çağrıldığında, işlevin dosyayı aradığı birkaç yer vardır. Uygulamanızı Uygulama Yolları kayıt defteri alt anahtarına kaydetmenizi öneririz. Bunun yapılması, uygulamaların sistem PATH ortam değişkenini değiştirme gereksinimini önler.
Dosya aşağıdaki konumlarda aranır:
- Geçerli çalışma dizini.
- Yalnızca Windows dizini (alt dizin aranmaz).
- Windows\System32 dizini.
- PATH ortam değişkeninde listelenen dizinler.
- Önerilen: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uygulama Yolları
Uygulamaları Kaydetme
Hem Uygulama Yolları hem de Uygulamaları kayıt defteri alt anahtarları, uygulamalar adına sistemin davranışını kaydetmek ve denetlemek için kullanılır. Uygulama Yolları alt anahtarı tercih edilen konumdur.
Uygulama Yolları Alt Anahtarını Kullanma
Windows 7 ve sonraki sürümlerde, makine başına değil kullanıcı başına uygulama yüklemenizi kesinlikle öneririz. Kullanıcı başına yüklenen bir uygulama HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uygulama Yollarıaltında kaydedilebilir. Bilgisayarın tüm kullanıcıları için yüklenen bir uygulama, HKEY_LOCAL_MACHINE\Yazılım\Microsoft\Windows\CurrentVersion\Uygulama Yollarıaltına kaydedilebilir.
Uygulama Yolları altında bulunan girdiler öncelikli olarak aşağıdaki amaçlar için kullanılır:
- Bir uygulamanın yürütülebilir dosya adını bu dosyanın tam yoluna eşlemek için.
- Path ortam değişkenine uygulama başına işlem başına önceden kaleme alınmış bilgiler için.
Uygulama Yolları alt anahtarının adı dosya adıyla eşleşiyorsa, Shell iki eylem gerçekleştirir:
- (Varsayılan) girdisi, dosyanın tam yolu olarak kullanılır.
- Bu alt anahtarın Yol girdisi, bu işlemin PATH ortam değişkenine önceden yazılır. Bu gerekli değilse, Yol değeri atlanabilir.
Dikkat edilmesi gereken olası sorunlar şunlardır:
- komut Shell satırının uzunluğunu MAX_PATH * 2 karakterle sınırlar. Kayıt defteri girdileri olarak listelenen çok sayıda dosya varsa veya yolları uzunsa, komut satırı kesildiğinde listenin sonraki bölümlerindeki dosya adları kaybolabilir.
- Bazı uygulamalar komut satırında birden çok dosya adını kabul etmediğinden.
- Birden çok dosya adını kabul eden bazı uygulamalar, bunların sağlandığı Shell biçimi tanımaz. , Shell parametre listesini tırnak içine alınmış bir dize olarak sağlar, ancak bazı uygulamalar tırnak işaretleri olmadan dizeler gerektirebilir.
- Sürüklenebilecek öğelerin tümü dosya sisteminin bir parçası değildir; örneğin, yazıcılar. Bu öğelerin standart bir Win32 yolu yoktur, bu nedenle ShellExecuteExiçin anlamlı lpParameters değeri sağlamanın hiçbir yolu yoktur.
DropTarget girişinin kullanılması, CFSTR_SHELLIDLIST (uzun dosya listeleri için) ve CFSTR_FILECONTENTS (dosya sistemi olmayan nesneler için) dahil olmak üzere tüm pano biçimlerine erişim sağlayarak bu olası sorunları önler.
Uygulama Yolları alt anahtarıyla uygulamalarınızın davranışını kaydetmek ve denetlemek için:
Aşağıdaki kayıt defteri girişinde gösterildiği gibi Uygulama Yolları alt anahtarına yürütülebilir dosyanızla aynı ada sahip bir alt anahtar ekleyin.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER SOFTWARE Microsoft Windows CurrentVersion App Paths file.exe (Default) DontUseDesktopChangeRouter DropTarget Path UseUrlUygulama Yolları alt anahtar girdilerinin ayrıntıları için aşağıdaki tabloya bakın.
| Kayıt defteri girdisi | Şey |
|---|---|
| (Varsayılan) | Uygulamanın tam yoludur. (Varsayılan) girdisinde sağlanan uygulama adı, .exe uzantısıyla veya uzantısı olmadan belirtilebilir. Gerekirse, ShellExecuteEx işlevi Uygulama Yolları alt anahtarı ararken uzantıyı ekler. Girdi REG_SZ türündedir. |
| Masaüstü Kullanmayın, Yönlendirici Değiştirin | Hata ayıklayıcı uygulamalarının Windows Gezgini işleminde hata ayıklarken dosya iletişim kutusu kilitlenmelerini önlemesi zorunludur. Ancak DontUseDesktopChangeRouter girişinin ayarlanması değişiklik bildirimlerinin biraz daha az verimli işlenmesini sağlar. Girdi REG_DWORD türündedir ve değer 0x1. |
| DropTarget | Bir sınıf tanımlayıcısı (CLSID). DropTarget girdisi, IDropTargetuygulayan bir nesnenin CLSID'sini (genellikle işlem içi sunucu yerine yerel bir sunucu) içerir. Varsayılan olarak, bırakma hedefi yürütülebilir bir dosya olduğunda ve DropTarget değeri sağlanmamışsa, Shell bırakılan dosyaların listesini bir komut satırı parametresine dönüştürür ve lpParameters aracılığıyla ShellExecuteEx'e geçirir. |
| Yol | Bir uygulama başlatıldığında path ortam değişkenine eklemek için ShellExecuteExçağrısı yaparak bir dize (noktalı virgülle ayrılmış dizin listesi biçiminde) sağlar. .exetam yoludur.
REG_SZ.
Windows 7 ve sonraki sürümlerdetürü REG_EXPAND_SZolabilir ve genellikle REG_EXPAND_SZ %ProgramFiles%.
Not: tarafından tanınan (Varsayılan), Path ve DropTarget girdilerine ek olarak, uygulama yürütülebilir dosyasının ShellUygulama Yolları alt anahtarına özel değerler de ekleyebilir. Uygulama geliştiricilerinin genel sistem yoluna ekleme yapmak yerine uygulamaya özgü bir yol sağlamak için Uygulama Yolları alt anahtarını kullanmasını öneririz. |
| Desteklenen Protokoller | Belirli bir anahtar için URL protokolü düzenlerini içeren bir dize oluşturur. Bu, hangi düzenlerin desteklendiğine işaret eden birden çok kayıt defteri değeri içerebilir. Bu dize, scheme1:scheme2biçimini izler. Bu liste boş değilse, dosyası: dizeye eklenir.
SupportedProtocols tanımlandığında bu protokol örtük olarak desteklenir. |
| UseUrl | Uygulamanızın komut satırında bir URL (dosya adı yerine) kabul edebildiğini gösterir. Web tarayıcıları ve medya yürütücüleri gibi belgeleri doğrudan internetten açabilen uygulamalar bu girdiyi ayarlamalıdır. ShellExecuteEx işlevi bir uygulama başlattığında ve UseUrl=1 değeri ayarlanmadığında, ShellExecuteEx belgeyi yerel bir dosyaya indirir ve işleyiciyi yerel kopya üzerinde çağırır. Örneğin, uygulama bu giriş kümesine sahipse ve bir kullanıcı web sunucusunda depolanan bir dosyaya sağ tıklarsa, Aç verb kullanılabilir duruma getirilecektir. Aksi takdirde, kullanıcının dosyayı indirmesi ve yerel kopyayı açması gerekir. UseUrl girdisi REG_DWORD türdedir ve değer 0x1. Windows Vista ve önceki sürümlerde bu girdi, ShellExecuteEx aracılığıyla çağrıldığında URL'nin yerel dosya adıyla birlikte uygulamaya geçirilmesi gerektiğini belirtiyordu. Windows 7'de, uygulamanın önbellek dosyası adını da sağlamak zorunda kalmadan, ona geçirilen herhangi bir http veya https URL'sini anlayabileceğini gösterir. Bu kayıt defteri anahtarı, SupportedProtocols anahtarıyla ilişkilendirilir. |
Applications Alt Anahtarını Kullanma
HKEY_CLASSES_ROOT\Applications\ApplicationName.exe alt anahtarı altına kayıt defteri girdilerinin eklenmesiyle, uygulamalar aşağıdaki tabloda gösterilen uygulamaya özgü bilgileri sağlayabilir.
| Kayıt defteri girdisi | Açıklama |
|---|---|
| shell\verb | OpenWith'ten uygulamayı çağırmak için verb yöntemini sağlar. Burada belirtilen bir verb tanım olmadan sistem, uygulamanın CreateProcess'i desteklediğini varsayar ve komut satırına dosya adını geçirir. Bu işlevsellik DropTarget, ExecuteCommand ve Dinamik Veri Değişimi (DDE) dahil olmak üzere tüm verb yöntemler için geçerlidir. |
| Varsayılan Simge | Bir uygulamanın, .exe dosyasında depolanan ilk simge yerine uygulamayı temsil eden belirli bir simge sağlamasına olanak tanır. |
| FriendlyAppName | Yalnızca sürüm bilgilerinin görünmesi yerine bir uygulama için görüntülenecek yerelleştirilebilir bir ad elde etmenin bir yolunu sağlar; bu, yerelleştirilebilir olmayabilir. ASSOCSTR ilişkilendirme sorgusu bu kayıt defteri giriş değerini okur ve sürüm bilgilerinde FileDescription adını kullanmaya geri döner. Bu ad eksikse, ilişkilendirme sorgusu varsayılan olarak dosyanın görünen adı olur. Uygulamalar, doğru davranışı elde etmek için bu bilgileri almak için ASSOCSTR_FRIENDLYAPPNAME kullanmalıdır. |
| Desteklenen Türler | Uygulamanın desteklediği dosya türlerini listeler. Bunun yapılması, uygulamanın ile aç iletişim kutusunun art arda menüsünde listelenebilmesini sağlar. |
| NoOpenWith | Bu dosya türünü açmak için hiçbir uygulama belirtilmediğinden emin olun. Bir uygulama için dosya türüne göre bir OpenWithProgIDs alt anahtarı ayarlandıysa ve ProgID alt anahtarının kendisinde noOpenWith girişi yoksa, NoOpenWith girdisini belirtmiş olsa bile bu uygulamanın önerilen veya kullanılabilir uygulamalar listesinde görüneceğini unutmayın. Daha fazla bilgi için bkz. Birlikte Aç İletişim Kutusu'na Uygulama Ekleme ve ile Aç İletişim Kutusu'ndan Uygulama Dışlama. |
| IsHostApp | İşlemin Rundll32.exe veya Dllhost.exegibi bir konak işlemi olduğunu ve En Sık Kullanılanlar (MFU) listesine sabitleme veya ekleme Başlangıç menüsü için dikkate alınmaması gerektiğini gösterir. null olmayan bağımsız değişken listesi veya açık birUygulama Kullanıcı Modeli Kimlikleri (AppUserModelIDs) içeren bir kısayolla başlatıldığında, işlem sabitlenebilir (bu kısayol olarak). Bu tür kısayollar MFU listesine dahil edilmeye adaydır. |
| NoStartPage | Uygulama yürütülebilir dosyasının ve kısayollarının Başlangıç menüsünden ve MFU listesine sabitleme veya ekleme dışında tutulması gerektiğini gösterir. Bu giriş genellikle sistem araçlarını, yükleyicileri ve kaldırıcıları ve benioku dosyalarını dışlamak için kullanılır. |
| ÇalıştırılabilirDosyayıGörevÇubuğuGrupSimgesiOlarakKullan | Bu uygulama için sabitlenebilir kısayol yoksa ve ilk karşılaşılan pencerenin simgesi yerine görev çubuğunun bu yürütülebilir dosyanın varsayılan simgesini kullanmasına neden olur. |
| Görev Çubuğu Grup Simgesi | Görev çubuğu simgesini geçersiz kılmak için kullanılan simgeyi belirtir. Pencere simgesi normalde görev çubuğu için kullanılır. TaskbarGroupIcon girdisinin ayarlanması, sistemin uygulama için .exe simgesini kullanmasına neden olur. |
Örnekler
HKEY_CLASSES_ROOT\Uygulamaları\ApplicationName.exe alt anahtarı aracılığıyla uygulama kaydı örnekleri aşağıda verilmiştir. REG_EXPAND_SZ türünde DefaultIcon dışında, tüm kayıt defteri giriş değerleri REG_SZ türündedir.
HKEY_CLASSES_ROOT
Applications
wordpad.exe
FriendlyAppName = @%SystemRoot%\System32\shell32.dll,-22069
HKEY_CLASSES_ROOT
Applications
wmplayer.exe
SupportedTypes
.3gp2
HKEY_CLASSES_ROOT
Applications
wmplayer.exe
DefaultIcon
(Default) = %SystemRoot%\system32\wmploc.dll,-730
HKEY_CLASSES_ROOT
Applications
WScript.exe
NoOpenWith
HKEY_CLASSES_ROOT
Applications
photoviewer.dll
shell
open
DropTarget
Clsid = {FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}
HKEY_CLASSES_ROOT
Applications
mspaint.exe
SupportedTypes
.bmp
.dib
.rle
.jpg
.jpeg
.jpe
.jfif
.gif
.emf
.wmf
.tif
.tiff
.png
.ico
Fiilleri ve Diğer Dosya İlişkilendirme Bilgilerini Kaydetme
HKEY_CLASSES_ROOT\SystemFileAssociations altında kaydedilen alt anahtarlar, dosya türleri için özniteliklerin varsayılan davranışını tanımlamaya ve paylaşılan dosya ilişkilendirmelerini etkinleştirmeye olanak tanırShell. Kullanıcılar bir dosya türü için varsayılan uygulamayı değiştirdiğinde, yeni varsayılan uygulamanın ProgID'sinin fiiller ve diğer ilişkilendirme bilgileri sağlama önceliği vardır. Bu öncelik, ilişkilendirme dizisindeki ilk girdi olmasından kaynaklanır. Varsayılan program değiştirilirse, önceki ProgID'nin altındaki bilgiler artık kullanılamaz.
Varsayılan programlarda yapılan bir değişikliğin sonuçlarıyla proaktif olarak başa çıkmak için, fiilleri ve diğer ilişkilendirme bilgilerini kaydetmek içinSystemFileAssociations HKEY_CLASSES_ROOT\ kullanabilirsiniz. İlişki dizisindeki ProgID'nin ardından konumları nedeniyle bu kayıtlar daha düşük önceliklidir. Bu SystemFileAssociationsregistrations, kullanıcılar varsayılan programları değiştirdiğinde bile kararlıdır ve belirli bir dosya türü için her zaman kullanılabilir olacak ikincil fiilleri kaydetmek için bir konum sağlar. Kayıt defteri örneği için, bu konunun devamında yer alan Algılanan Tür kaydetme bakın.
Aşağıdaki kayıt defteri örneğinde, kullanıcı .mp3 dosyaları için varsayılanı App2ProgID olarak değiştirmek üzere Denetim Masası'ndaki Varsayılan Programlar öğesini çalıştırdığında ne olacağı gösterilmektedir. Varsayılanı değiştirdikten sonra, Fiil1 artık kullanılamaz ve Fiil2 varsayılan olur.
HKEY_CLASSES_ROOT
.mp3
(Default) = App1ProgID
HKEY_CLASSES_ROOT
App1ProgID
shell
Verb1
HKEY_CLASSES_ROOT
App2ProgID
shell
Verb2
Algılanan Türü Kaydetme
Algılanan türler için kayıt defteri değerleri, HKEY_CLASSES_ROOT\SystemFileAssociations kayıt defteri alt anahtarının alt anahtarları olarak tanımlanır. Örneğin, algılanan tür metin aşağıdaki gibi kaydedilir:
HKEY_CLASSES_ROOT
SystemFileAssociations
text
shell
edit
command
(Default) = "%SystemRoot%\system32\NOTEPAD.EXE" "%1"
open
command
(Default) = "%SystemRoot%\system32\NOTEPAD.EXE" "%1"
Dosya türünün algılanan türü, dosya türünün alt anahtarına bir PerceivedType değeri eklenerek belirtilir. PerceivedType değeri, önceki kayıt defteri örneğinde gösterildiği gibi, HKEY_CLASSES_ROOT\SystemFileAssociations kayıt defteri alt anahtarı altında kaydedilen algılanan türün adına ayarlanır. .cpp dosyalarını algılanan "text" türünde olarak bildirmek için aşağıdaki kayıt defteri girdisini ekleyin:
HKEY_CLASSES_ROOT
.cpp
PerceivedType = text