मुझे लगता है कि आप फ़ाइल आइकन का मतलब है, एप्लिकेशन नहीं। जब तक कार्यालय स्थापित होता है तब तक आप रनटाइम पर आइकन लोड करने के लिए कोड का उपयोग कर सकते हैं उदा। GetFileIcon("doc", SHGFI_ICONSIZE_LARGE)
const uint SHGFI_ICON = 0x100;
const uint SHGFI_USEFILEATTRIBUTES = 0x10; // Use file extension not name
const uint SHGFI_ICONSIZE_SMALL = 1;
const uint SHGFI_ICONSIZE_LARGE = 0;
const uint FILE_ATTRIBUTE_NORMAL = 0;
const uint FILE_ATTRIBUTE_DIRECTORY = 16;
[StructLayout(LayoutKind.Sequential)]
struct SHFILEINFO
{
public IntPtr hIcon;
public IntPtr iIcon;
public uint dwAttributes;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
public string szTypeName;
}
[DllImport("shell32.dll")]
private static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
static System.Drawing.Icon GetFileIcon(string extension, uint size)
{
IntPtr hImgResult; //the handle to the system image list
SHFILEINFO shinfo = new SHFILEINFO();
if (string.Compare(extension,"folder",true)==0)
{
hImgResult = SHGetFileInfo("", FILE_ATTRIBUTE_DIRECTORY, ref shinfo,
(uint)Marshal.SizeOf(shinfo),
SHGFI_ICON | size);
}
else
{
hImgResult = SHGetFileInfo(extension, FILE_ATTRIBUTE_NORMAL, ref shinfo,
(uint)Marshal.SizeOf(shinfo),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | size);
}
return System.Drawing.Icon.FromHandle(shinfo.hIcon);
}
आप एक चीज़ भूल गए जो (मेरे लिए) बहुत महत्वपूर्ण है: आकार और गहराई (8/16/32 बिट्स) क्या होनी चाहिए? मेरी विस्तृत स्क्रीन (1920x1080/32 बिट्स) के लिए मैं केवल विशाल और अच्छे 32 बिट्स आइकन ढूंढ रहा हूं। यदि आप अपने ऐप को स्मार्टफोन पर काम करना चाहते हैं तो यह वही सामान नहीं है जिसे आप ढूंढ रहे हैं। 3212 गहराई पर –
विशेष रूप से 32x32 और 48x48। – Ian