delphi 获取系统注册的文件图标

var
  Icon:TICON;
  Key : string;
  App : string;
  Index : Integer;
begin
  FileName:=Edit6.Text;
  if Pos('.',FileName) < 0 then
  begin
    Exit;
  end;
  with TRegistry.Create do
  try
    RootKey:=HKEY_CLASSES_ROOT;
    Key:=ExtractFileExt(FileName);
    if KeyExists(Key) then
    begin
      OpenKey(Key,false);
      Key:=ReadString(#);
      CloseKey;
    end;
    if Key<>''
then
    begin
      RootKey:=HKEY_CLASSES_ROOT;
      if KeyExists(Key) then
      begin
        OpenKey(Key,false);
        OpenKey('DefaultIcon',false);
        Key:=ReadString(#);
        CloseKey;
      end;
    end;
  finally
    free;
  end;
  if Key<>'' then
  begin
    Icon:=TIcon.Create;
    App:='';
    Index :=0;
    If Pos(',',Key) > 0 then
    begin
      App :=Copy(Key,1,Pos(',',Key)-1);
      try
        Index :=StrToInt(Copy(Key,Pos(',',Key)+1,Length(Key)));
      except
        Index :=0;
      end;
    end;
    if App<> '' then
    begin
      Icon.Handle:=ExtractIcon( HINSTANCE,PChar(App),Index);
      Form1.Icon:=Icon;
    end;
    Icon.Free;
  end;
  Edit5.Text := Key;
end;
 
原文地址:https://www.cnblogs.com/blogpro/p/11339937.html