簡體   English   中英

在C#.NET中使用操作系統的文件類型映像

[英]Use the file types image of the operating system in C# .NET

我可以以某種方式使用操作系統中的文件類型圖像並將其顯示在應用程序中嗎?

如果知道所需圖標的文件名,則可以使用ExtractAssociatedIcon函數來實現此目的。 例如

Icon ico = Icon.ExtractAssociatedIcon(@"C:\WINDOWS\system32\notepad.exe");

這種方法有一個陷阱。 根據其文檔,

當ExtractAssociatedIcon與位圖一起使用時,如果運行該應用程序的系統具有注冊表設置,導致位圖文件顯示為縮略圖,則可能會返回縮略圖而不是圖標。

我發現的另一件事是,此方法僅提取32x32pixel圖標。

有關如何使用此方法的更多信息,請參見System.Drawing.Icon.ExtractAssociatedIcon(MSDN)


對於更強大的圖標提取器,建議您查看CodeProject上的OSIcon項目。
它允許您使用文件名擴展名來獲取任何文件的關聯圖標。
這是執行此操作的示例代碼:

OSIcon.WinAPI.Shell32.SHFILEINFO shfi = new Shell32.SHFILEINFO();
Icon icon = OSIcon.IconReader.GetFileIcon(".png", IconReader.IconSize.Large, false, ref shfi);

這是項目的鏈接: http : //www.codeproject.com/KB/system/OSIcon.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM