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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值