2010-01-10 8 views
6

Khi bấm chuột phải vào tệp trong Windows Explorer, mục menu "Mở bằng" hiển thị danh sách các ứng dụng có sẵn, dựa trên loại tệp của tệp được nhấp .Truy cập theo lập trình danh sách menu "Mở bằng" Windows Explorer từ .NET

Xem ảnh này là một ví dụ:

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

Bây giờ tôi muốn để có thể lập trình đọc danh sách các ứng dụng cho một tập tin mở rộng/loại nhất định (ví dụ: "png") từ bên trong một C# Ứng dụng .NET 2.0.

Ví dụ:

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

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

Câu hỏi:

Có thể để có được danh sách này?

Trả lời

5

Danh sách các chương trình được liên kết với phần mở rộng tệp được lưu trữ trong Windows Registry.

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

Microsoft.Win32 chứa các lớp để truy cập sổ đăng ký.
Để biết thêm thông tin, hãy đọc thêm here

+0

Cảm ơn bạn, tôi sẽ xem xét. Tôi đoán rằng ứng dụng có thể cần quyền quản trị (mà nó không có) để liệt kê sổ đăng ký. –

+3

Đoán của tôi là liệt kê sẽ có thể nếu không có độ cao. Hãy chắc chắn rằng bạn sử dụng quá tải thích hợp của lớp RegistryKey để mở nó chỉ đọc. – Zyphrax