2010-03-22 18 views
8

Tôi đang cố gắng thêm các lớp phủ biểu tượng khác nhau trên các biểu tượng của các tệp khác nhau (lưu ý: không phải tất cả các tệp của một loại nhất định, chỉ một số tệp nhất định). Nếu bạn không hiểu ý tôi, tôi đang đề cập đến những chương trình như TortoiseSVN, TortoiseHG, Dropbox, v.v..NET: Làm cách nào để tạo lớp phủ biểu tượng tệp

Điều này có thể được thực hiện trong .NET không? Nếu vậy, làm thế nào? Tôi hy vọng có một thư viện ở đó vì điều này. Tôi tìm thấy this CodeProject article về một cái gì đó như thế này, nhưng nó không phải NET.

Xin cảm ơn trước.

Trả lời

5

Không, không phải .NET. Lập trình Shell nằm trong miền không được quản lý C/C++. Shell32.dll có một thư viện kiểu mà làm cho một số chức năng có sẵn cho các ngôn ngữ kịch bản và .NET. Nhưng giao diện IShellIconOverlay kế thừa từ IUnknown, không thể truy cập vào kịch bản. Đó là kỹ thuật có thể nhưng bạn sẽ phải redeclare giao diện trong C#, bằng cách sử dụng khai báo trong tập tin tiêu đề của ShlObj.h SDK như là một mẫu. Ai đó đã làm điều đó ở đâu đó, có lẽ, nhưng nó không phổ biến để cố gắng làm cho nó hoạt động. Tìm kiếm nhanh trên Google không có gì hữu ích.

Hy vọng rằng .NET 4.0 sẽ hồi sinh một số hoạt động, giải quyết vấn đề tiêm phiên bản CLR. Tôi chưa thấy dấu hiệu của nó.

+0

Vì vậy, .NET 4.0 hiện đã hết, có thể bây giờ không? – EaterOfCode

+0

Nó không bao giờ * không thể *. Không có gì thay đổi kể từ khi tôi đăng này, .NET 4.0 đã không làm sống lại hoạt động. Có lẽ vì Microsoft tuyên bố nó không được hỗ trợ. –

+1

.NET hỗ trợ tất cả các chức năng này tốt, tôi gần như hoàn thành việc triển khai tất cả các phần mở rộng tiêu chuẩn, lớp phủ biểu tượng ở đây: http://www.codeproject.com/Articles/545781/NET-Shell-Extensions-Shell-Icon -Trình xử lý –

Các vấn đề liên quan