2010-01-10 7 views
6

Windows Gezgini'nde bir dosyaya sağ tıklandığında, "Birlikte aç" menü öğesi, tıklatılan dosyanın dosya türüne bağlı olarak kullanılabilir uygulamaların bir listesini görüntüler. .Program aracılığıyla "Open with" Windows Gezgini menü listesine .NET üzerinden erişme

örnek olarak bu resmi bakınız:

"Open with" context menu in Windows Explorer http://magerquark.de/data/misc/open-with.png

Şimdi programlı belirli bir dosya uzantısı/türü için uygulamaların listesini okumak mümkün istiyorum (örneğin, "png") bir C# içinden .NET 2.0 uygulaması.

E.g.

public class FileOpenInfo 
{ 
    public string ApplicationName { get; } 
    public string ApplicationPath { get; } 

    public static FileOpenInfo[] GetInformation(string extension); 
} 

Soru:

bu listeyi almak mümkün mü?

cevap

5

Dosya uzantısıyla ilişkili programların listesi Windows Kayıt Defteri'nde saklanır.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 

Microsoft.Win32, kayıt defterine erişmek için sınıfları içerir.
Daha fazla bilgi için, daha fazla bilgi için here

+0

Teşekkür ederim, bir göz atacağım. Uygulama muhtemelen kayıt defterini numaralandırmak için yönetimsel izinlere (sahip olmadığı) gereksinimi olduğunu tahmin ediyorum. –

+3

Benim tahminim sayım olmaksızın numaralandırmanın mümkün olacağıdır. Salt okunur açmak için RegistryKey sınıfının uygun aşırı yükünü kullandığınızdan emin olun. – Zyphrax

İlgili konular