如何修改扩展名对应的图标

山东蓝鸟贵薪 2011-06-05 03:00:37
如何修改扩展名对应的图标
我想通过DELPHI编程实现这个功能,但是不影响 程序的打开
...全文
543 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
山东蓝鸟贵薪 2011-08-24
  • 打赏
  • 举报
回复
看看我的帖子,有分送上
1)用DELPHI读取EXE_DLL文件的相关参数
http://topic.csdn.net/u/20101030/16/f73fba3b-7e60-4490-a9ce-dbf07d157ee3.html
2)请教DELPHI编程实现“透明文件加密的问题 ”
http://topic.csdn.net/u/20110518/10/b6ba5f09-403a-4d2b-aced-23789ed16ad7.html
3)文件透明加密之驱动层驱开发问题请教
http://topic.csdn.net/u/20110613/10/f5123089-7ed9-4072-9918-283b86425ab5.html
4)用Delphi编写的EasySYS写驱动程序的问题
http://topic.csdn.net/u/20110616/14/ae342929-b1ad-4f9f-8481-a21b4d7c468d.html
5)用DELPHI编程如何调用这个.sys并显示:Hello World
http://topic.csdn.net/u/20110628/11/b13c130e-39c0-4e3d-b016-3844254e8e6d.html
bingbing_liuyue 2011-08-03
  • 打赏
  • 举报
回复
顶贴中。。。
山东蓝鸟贵薪 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhengcom 的回复:]
Delphi(Pascal) code
RegAssociatedExec('.abc','abcfile','','','C:\Program.exe,0','C:\Program.exe %1');

uses Registry, shlobj;

function RegAssociatedExec(FileExt, Filetype, FileDescription, M……
[/Quote]
为什么用您提供的[注册关联]时,文件就直接关联上,关联上的文件也能直接使用,
但是我想问的问题是: 我自己编写的[取消关联代码],就是直接删除[注册表]中
那些相关的[键值],为什么必须[重启系统或者重启Explorer.exe进程才会生效],
可是又关闭[状态栏上打开的所有文件夹]
山东蓝鸟贵薪 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sgzhou12345 的回复:]
我修改成如下:
//关联 相关扩展名 .abc
RegAssociatedExec('.abc','abcfile','','','C:\WINDOWS\notepad.exe,0','C:\WINDOWS\notepad.exe %1');
可是不知如何取消这个[注册标识]并初始化为[未识别的方式]
[/Quote]
[取消]功能,我已完成了>>>>>>>>>>>>>>>>>>>>>
山东蓝鸟贵薪 2011-06-08
  • 打赏
  • 举报
回复
我修改成如下:
//关联 相关扩展名 .abc
RegAssociatedExec('.abc','abcfile','','','C:\WINDOWS\notepad.exe,0','C:\WINDOWS\notepad.exe %1');
可是不知如何取消这个[注册标识]并初始化为[未识别的方式]
山东蓝鸟贵薪 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 shijies 的回复:]
这就是文件关联的问题。
[/Quote]
如何处理呀>>>>>>????????????
shijies 2011-06-07
  • 打赏
  • 举报
回复
这就是文件关联的问题。
山东蓝鸟贵薪 2011-06-07
  • 打赏
  • 举报
回复
我想只修改“关连的图标”的同时,由另一个程序“加载这个文件”,
并“分析出对应打开这个文件的具体程序”
如下:
.txt 对应WinXPSP3系统中默认的打开文件为:notepad.exe
山东蓝鸟贵薪 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shijies 的回复:]
得找到应用程序扩展名对应的图标被记录到注册表里的位置,还不如卸载程序,重新建立文件关联。
[/Quote]
我想只修改“关连的图标”
shijies 2011-06-07
  • 打赏
  • 举报
回复
得找到应用程序扩展名对应的图标被记录到注册表里的位置,还不如卸载程序,重新建立文件关联。
zhengcom 2011-06-07
  • 打赏
  • 举报
回复


RegAssociatedExec('.abc','abcfile','','','C:\Program.exe,0','C:\Program.exe %1');

uses Registry, shlobj;

function RegAssociatedExec(FileExt, Filetype, FileDescription, MIMEType, Icon,
ExecName: String): Boolean;
begin
Result := False;
if (FileExt = '') or (ExecName = '') then
Exit;

with TRegistry.Create do
begin
try
RootKey:=HKEY_CLASSES_ROOT;
if not OpenKey(FileExt, True) then
Exit;

WriteString('', FileType);
if MIMEType <> '' then
WriteString('Content Type', MIMEType);
CloseKey;

if not OpenKey(FileType, True) then
Exit;
WriteString('', FileDescription);
CloseKey;

if Icon<>'' then
begin
if not OpenKey(FileType+'\DefaultIcon', True) then
Exit;
WriteString('', Icon);
CloseKey;
end;

if not OpenKey(FileType+'\Shell\Open\Command', True) then
Exit;
WriteString('', ExecName);
CloseKey;

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
finally
Free;
end;
end;
end;


其实不复杂,就是在注册表里处理一下,告诉系统扩展名(如“abc”)对应的键(如“abcfile”),在这个“abcfile”下面就有一些子键指定打开的程序和显示时使用的图标,完成更改注册表后,再告诉系统立即刷新一下就好了。
山东蓝鸟贵薪 2011-06-07
  • 打赏
  • 举报
回复
我就是找不到,才发的帖子,顶一下吧>>>>>>>>>>>
shijies 2011-06-07
  • 打赏
  • 举报
回复
在建立文件关联时,确定文件使用的图标,网上搜吧。
山东蓝鸟贵薪 2011-06-06
  • 打赏
  • 举报
回复
我找呀找呀找呀
看到一扩展名的方法有所变化如下:
.doc 变为===> .docm
.xls 变为===> .xlsm
山东蓝鸟贵薪 2011-06-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shijies 的回复:]
扩展名对应的图标被写到了注册表里,得修改注册表里的内容。
[/Quote]
如何修改呀???
shijies 2011-06-06
  • 打赏
  • 举报
回复
扩展名对应的图标被写到了注册表里,得修改注册表里的内容。
山东蓝鸟贵薪 2011-06-05
  • 打赏
  • 举报
回复
这种方式也是:
"透明文件加密的问题"
山东蓝鸟贵薪 2011-06-05
  • 打赏
  • 举报
回复
如图:
加密格式

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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