::: µ¨ÆÄÀÌ Tip&Trick :::

µ¨ÆÄÀÌ Tip&Trick ¼º°Ý¿¡ ¸ÂÁö ¾Ê´Â ±¤°í,ºñ¹æ,Áú¹®ÀÇ ±ÛÀº Áï½Ã »èÁ¦Çϸç
³»¿ëÀ» º¹»çÇÏ¿© »ç¿ëÇÒ °æ¿ì ¹Ýµå½Ã ÀÌ°÷(http://www.howto.pe.kr)À» Ãâó·Î ¸í½ÃÇÏ¿© ÁÖ¼¼¿ä


Category

  ±è¿µ´ë(2003-03-07 20:04:43, Hit : 8529, Vote : 1986
 System Images

unit untShellIcons;

interface

uses
   Windows, ShellAPI;

type
  TShellIcons = class
  private
    FLargeImageHandle: integer;
    FSmallImageHandle: integer;
    FDesktopIndex: integer;
    FMyComputerIndex: integer;
    FNetworkIndex: integer;
    FRecycleBinIndex: integer;
    FCloseFolderIndex: integer;
    FOpenFolderIndex: integer;
    FLinkOverlayIndex: integer;
    FShareOverlayIndex: integer;
    FFolderTypeName: string;
  public
    constructor Create;

    function GetIconIndex(fn: string): integer;
    function GetTypeName(fn: string): string;

    property LargeImageHandle: integer read FLargeImageHandle;
    property SmallImageHandle: integer read FSmallImageHandle;
    property DesktopIndex: integer read FDesktopIndex;
    property MyComputerIndex: integer read FMyComputerIndex;
    property NetworkIndex: integer read FNetworkIndex;
    property RecycleBinIndex: integer read FRecycleBinIndex;
    property CloseFolderIndex: integer read FCloseFolderIndex;
    property OpenFolderIndex: integer read FOpenFolderIndex;
    property LinkOverlayIndex: integer read FLinkOverlayIndex;
    property ShareOverlayIndex: integer read FShareOverlayIndex;
    property FolderTypeName: string read FFolderTypeName;
  end;

var
  ShellIcons: TShellIcons;

implementation

uses
  ShlObj, SysUtils;

constructor TShellIcons.Create;
var
  itemIDs: PItemIDList;
  shInfo: TSHFileInfo;
begin
  FLargeImageHandle := SHGetFileInfo(
    '', 0, shInfo, SizeOf(shInfo), SHGFI_SYSICONINDEX or SHGFI_LARGEICON
  );

  FSmallImageHandle := SHGetFileInfo(
    '', 0, shInfo, SizeOf(shInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON
  );

  SHGetSpecialFolderLocation(0, CSIDL_DESKTOP, itemIDs);
  SHGetFileInfo(
    PChar(itemIDs), 0, shInfo, Sizeof(shInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX
  );
  FDesktopIndex := shInfo.iIcon;

  SHGetSpecialFolderLocation(0, CSIDL_DRIVES, itemIDs);
  SHGetFileInfo(
    PChar(itemIDs), 0, shInfo, Sizeof(shInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX
  );
  FMyComputerIndex := shInfo.iIcon;

  SHGetSpecialFolderLocation(0, CSIDL_NETWORK, itemIDs);
  SHGetFileInfo(
    PChar(itemIDs), 0, shInfo, Sizeof(shInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX
  );
  FNetworkIndex := shInfo.iIcon;

  SHGetSpecialFolderLocation(0, CSIDL_BITBUCKET, itemIDs);
  SHGetFileInfo(
    PChar(itemIDs), 0, shInfo, Sizeof(shInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX
  );
  FRecycleBinIndex := shInfo.iIcon;

  SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, itemIDs);
  SHGetFileInfo(
    PChar(itemIDs), 0, shInfo, Sizeof(shInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX
  );
  FCloseFolderIndex := shInfo.iIcon;

  SHGetFileInfo(
    PChar(itemIDs), 0, shInfo, Sizeof(shInfo),
    SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_OPENICON or SHGFI_TYPENAME
  );
  FOpenFolderIndex := shInfo.iIcon;
  FFolderTypeName := shInfo.szTypeName;

  FLinkOverlayIndex := 1;
  FShareOverlayIndex := 0;
end;

// get shell icon index from file which may not exists.
function TShellIcons.GetIconIndex(fn: string): integer;
var
  shInfo: TSHFileInfo;
begin
  SHGetFileInfo(
    PChar(fn), FILE_ATTRIBUTE_NORMAL, shInfo, SizeOf(shInfo),
    SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES
  );

  Result := shInfo.iIcon;
end;

// get shell type name from file which may not exists.
function TShellIcons.GetTypeName(fn: string): string;
var
  shInfo: TSHFileInfo;
  ext: string;
  fs: string;
begin
  SHGetFileInfo(
    PChar(fn), FILE_ATTRIBUTE_NORMAL, shInfo, SizeOf(shInfo),
    SHGFI_TYPENAME or SHGFI_USEFILEATTRIBUTES
  );
  Result := shInfo.szTypeName;

  if Length(Result) = 0 then begin
    ext := ExtractFileExt(fn);
    if Length(ext) > 0 then ext := ext + ' ';
    if (GetUserDefaultLangID and $3ff) = LANG_KOREAN then fs := '¨¡AAI'
    else fs := 'File';
    Result := ext + fs;
  end;
end;

initialization
  ShellIcons := TShellIcons.Create;
finalization
  ShellIcons.Free;

end.





491   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TRichEdit ÀÇ ¼±ÅÃµÈ ¿µ¿ª¸¸ ÀμâÇÏ±â  ±è¿µ´ë 2003/03/07 5043 937
490   [½Ã½ºÅÛ] CPU Á¾·ù ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 5395 1388
489   [½Ã½ºÅÛ] »ç¿îµåÆÄÀÏ ¾øÀÌ PC ½ºÇÇÄ¿·Î À½¾Ç¿¬ÁÖ  ±è¿µ´ë 2003/03/07 7604 1138
488   [³×Æ®¿÷/ÀÎÅͳÝ] ÇÁ·Î±×·¥À¸·Î ³×Æ®¿öÅ© µå¶óÀÌºê ¿¬°á/ÇØÁ¦  ±è¿µ´ë 2003/03/07 7428 1428
487   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À©µµ¿ìÁî Á¾·á¿Í °°Àº ±×´ÃÁø È­¸é ¸¸µé±â  ±è¿µ´ë 2003/03/07 3552 946
486   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¾ÆÀÌÄÜ »çÀÌÆ®  ±è¿µ´ë 2003/03/07 4071 1209
485   [½Ã½ºÅÛ] À©µµ¿ìÁî ½Ã½ºÅÛ Ç¥ÁØ ÆùÆ® ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 3485 967
484   [³×Æ®¿÷/ÀÎÅͳÝ] RS232 Åë½Å  ±è¿µ´ë 2003/03/07 7593 2020
483   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ÁÖ¾îÁø ¿µ¿ªÀÇ È­¸é ĸó  ±è¿µ´ë 2003/03/07 3926 1119
482   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¼ýÀÚ¸¦ ¿µ¹® Ç¥±â·Î ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4693 1044
481   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¼ýÀÚ¸¦ ÇÑ±Û Ç¥±â·Î ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4029 1056
480   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ÀÇ ³»¿ëÀ» Bitmap À¸·Î ¸¸µé±â 2  ±è¿µ´ë 2003/03/07 4347 1610
479   [COM/OLE] MS-WORD Á¾·á½ÃÅ°±â  ±è¿µ´ë 2003/03/07 3044 853
478   [À©µµ¿ìÁî API] ½Ã½ºÅÛ »ç¿îµå ¿¬ÁÖÇÏ±â  ±è¿µ´ë 2003/03/07 5353 1455
477   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Algorithm to sort a TStringGrid #2  ±è¿µ´ë 2003/03/07 5291 1375
476   [À©µµ¿ìÁî API] ¿ÜºÎ ÇÁ·Î±×·¥ÀÇ ÁÂÇ¥,»óÅ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 3672 1155
475   [À©µµ¿ìÁî API] À©µµ¿ìÁî Telnet À¸·Î È£½ºÆ® Á¢¼ÓÇÏ±â  ±è¿µ´ë 2003/03/07 4564 1247
474   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ƯÁ¤ÇÑ Æú´õ·Î À̵¿ÇÑ DOS â ¶ç¿ì±â  ±è¿µ´ë 2003/03/07 4649 1256
473   [½Ã½ºÅÛ] DOS ¸í·É¾î ½ÇÇàÇÏ°í °á°ú ¹Þ¾Æ¿À±â  ±è¿µ´ë 2003/03/07 7162 1680
472   [À©µµ¿ìÁî API] NTÀÇ ÇöÀç user°¡ administrative privilege ¸¦ °¡Áö°í ÀÖ´ÂÁö?  ±è¿µ´ë 2003/03/07 3541 966
471   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µÎ°³ÀÇ StringGrid sync ¸¶Ãß±â  ±è¿µ´ë 2003/03/07 4125 1132
470   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À©µµ¿ìÀÇ title bar ÆùÆ® ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 3649 960
469   [³×Æ®¿÷/ÀÎÅͳÝ] ³×Æ®¿öÅ© °øÀ¯ ¼³Á¤/ÇØÁ¦ Çϱâ (Windows 9x)  ±è¿µ´ë 2003/03/07 4878 1229
468   [³×Æ®¿÷/ÀÎÅͳÝ] ³×Æ®¿öÅ© °øÀ¯ Á¤º¸ Àоî¿À±â (WIndows 9x)  ±è¿µ´ë 2003/03/07 4130 1154
467   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ´­·ÁÁø Å°º¸µå Å°ÀÇ ¸íĪ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 7879 1583
466   [À©µµ¿ìÁî API] Windows98 ¿¡¼­ÀÇ SetForegroundWindow  ±è¿µ´ë 2003/03/07 6390 1664
465   [À©µµ¿ìÁî API] Task bar ¿¡ ³ªÅ¸³ªÁö ¾Ê´Â ÇÁ·Î±×·¥ ¸¸µé±â  ±è¿µ´ë 2003/03/07 5663 1660
464   [COM/OLE] Outlook »ç¿ëÇÏ±â  ±è¿µ´ë 2003/03/07 4047 1335
463   [½Ã½ºÅÛ] ÁöÁ¤ÇÑ drive°¡ CD-ROM ÀÎÁö °Ë»çÇÏ±â  ±è¿µ´ë 2003/03/07 6905 1820
462   [½Ã½ºÅÛ] ¾î¶² ¾îÇø®ÄÉÀ̼ÇÀÌ ½ÃÀÛ µÇ´ÂÁö hookÀ¸·Î ¾Ë¾Æ³»±â  ±è¿µ´ë 2003/03/07 5787 1729
461   [À©µµ¿ìÁî API] À©µµ¿ìÁî Ž»ö±âÀÇ ¾ÆÀÌÄÜ »Ì¾Æ³»¼­ »ç¿ëÇÏ±â  ±è¿µ´ë 2003/03/07 8602 2063
  [À©µµ¿ìÁî API] System Images  ±è¿µ´ë 2003/03/07 8529 1986
459   [À©µµ¿ìÁî API] ÄÄÇ»ÅÍ/ÆÄÀÏ/Æú´õ ã±â È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/07 8553 1696
458   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Unix-format time À» TDateTime ·Î ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4505 1240
457   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ½ÇÇà½Ã component ¸¦ Move/Resize ½ÃÅ°±â  ±è¿µ´ë 2003/03/07 3692 1067
456   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TMemo ¸¦ È­¸éÅ©±â·Î ÀμâÇÏ±â  ±è¿µ´ë 2003/03/07 3198 809
455   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] SpeedButton ¿¡ OnMouseEnter/OnMouseExit À̺¥Æ® ³Ö±â  ±è¿µ´ë 2003/03/07 4374 1183
454   [À©µµ¿ìÁî API] Å°º¸µåÀÇ Scroll Lock Äѱâ/²ô±â  ±è¿µ´ë 2003/03/07 4755 1276
453   [µ¥ÀÌÅͺ£À̽º] table packing ÇÏ±â  ±è¿µ´ë 2003/03/07 4040 1119
452   [À©µµ¿ìÁî API] reboot Windows  ±è¿µ´ë 2003/03/07 5108 1343

[ÀÌÀü 10°³] [1]..[11][12] 13 [14][15][16][17][18][19][20]..[25] [´ÙÀ½ 10°³]
 

Copyright 1999-2025 Zeroboard / skin by zero