大家看一下,我下面的读取图标的方法为什么不对呢?

shylsx 2003-08-20 10:06:52
各位大哥,帮我看一下我的下面的读取注册表中的图标的方法为什么错呢?
procedure TForm1.Button1Click(Sender: TObject);
Var
Reg: TRegistry;
Begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
If Reg.OpenKey('\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}

\DefaultIcon', False) Then
image1.Picture.Icon.LoadFromFile(reg.ReadString(''));
{如果上句改成
image1.Picture.Icon.LoadFromFile('C:\WIN2000\Explorer.exe,0 ')
也是不行。请问怎么载入这种资源的图标呢?还有,DefaultIcon的类型怎么
是REG_EXPAND_SZ型呢,这种类型怎么操作呢?}
Reg.Free;
end;
...全文
32 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxpbuaa 2003-08-20
  • 打赏
  • 举报
回复
上面的GetIconFromFile(reg.ReadString(''), 0);是简写,对于reg.ReadString('')得到的
'C:\WIN2000\Explorer.exe,0 '这样的结果,应该去掉最后的“,0”再传入GetIconFromFile。

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

lxpbuaa 2003-08-20
  • 打赏
  • 举报
回复
uses ShellAPI;

function GetIconFromFile(FileName: String; IconIndex: Word = 0): TIcon;
begin
Result := TICon.Create;
Result.Handle := ExtractIcon(0,PChar(FileName),IconIndex);
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
Reg: TRegistry;
Begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
If Reg.OpenKey('\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
\DefaultIcon', False) Then
image1.Picture.Icon := GetIconFromFile(reg.ReadString(''), 0);
Reg.Free;
end;

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧