Board logo

标题: [求助]文件的识别与图标显示 [打印本页]

作者: cad55     时间: 2010-8-28 14:14    标题: [求助]文件的识别与图标显示

请教各位:

在系统中通常根据扩展名,来识别文件,并配以相应图标。
现想,相同的扩展名,但文件头有区别,能否,分别配上不同的图标。

这个意图是为了实现:某一类文件,但是由不同版本的软件所产生,让系统将它们直接区分出来。

请各位,,谢谢了。。
作者: slore     时间: 2010-8-29 15:14
明显不能。。。

新建一个文件文件,随便改名扩展,图标都会变,文件大小是0字节,
所以就不牵扯文件头。。。


你自己多注册些扩展名吧,不过比较乱可能。
.abcv1
.abcv2
……
作者: cad55     时间: 2010-8-30 08:27


  Quote:
Originally posted by slore at 2010-8-29 03:14 PM:
明显不能。。。

新建一个文件文件,随便改名扩展,图标都会变,文件大小是0字节,
所以就不牵扯文件头。。。


你自己多注册些扩展名吧,不过比较乱可能。
.abcv1
.abcv2
……

这一定是可能的,

有人搞过了,

是它多个功能的中的一个,文件量很大,

想,简化一下,要这样的功能。


还请大家,,费心,

[ Last edited by cad55 on 2010-8-30 at 08:28 ]
作者: cad55     时间: 2010-8-30 09:07
是这样的,

CAD软件,生成的文件,扩展名为*.dwg

其不同版本对应文件头
R12------AC1009
R13------AC1012
R14------AC1014
2000-----AC1015
2004-----AC1018
2006-----AC1021

若出现,0字节或非上述正常文件头代码均,显示为带?号的图标。


根据文件头,区别同类文件

请各位高手,大侠,指教。。。谢谢。。

[ Last edited by cad55 on 2010-8-30 at 09:22 ]
附件 1: ScreenHunter_001.png (2010-8-30 09:22, 26.28 K, 下载附件所需积分 1点 )



作者: slore     时间: 2010-8-30 11:26
初步觉得是CAD可能带了什么dll处理的吧。

不知道.dwg的


导出ROOT主键下面的
.dwg和assoc.dwg对应的键值的注册表出来看看吧。
作者: cad55     时间: 2010-8-30 11:27
不运行,CAD时,,系统就是分清,了
作者: cad55     时间: 2010-8-30 11:30
dwg-------YaoCCAD.Drawing
assoc.dwg-----注册表中没有此项键值
作者: slore     时间: 2010-8-30 16:30
assoc.dwg是命令。。。就是看它的关联,应该就是YaoCCAD.Drawing

导出ROOT下的这个项出来看看。
作者: cad55     时间: 2010-8-31 08:43


  Quote:
Originally posted by slore at 2010-8-30 04:30 PM:
assoc.dwg是命令。。。就是看它的关联,应该就是YaoCCAD.Drawing

导出ROOT下的这个项出来看看。

谢谢,,应助,

导出的ROOT就是哪项。
作者: slore     时间: 2010-8-31 09:28
YaoCCAD.Drawing
项啊!
作者: cad55     时间: 2010-8-31 11:35
是这个吗

[ Last edited by cad55 on 2010-8-31 at 11:39 ]
附件 1: ScreenHunter_007.png (2010-8-31 11:39, 47.79 K)



作者: slore     时间: 2010-8-31 11:50
ROOT\YaoCCAD.Drawing

项导出来。。。
作者: cad55     时间: 2010-8-31 12:31
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1214440339-706699826-725345543-500\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dwg\OpenWithProgids]
"AutoCAD.Drawing.16"=hex(0):
"YaoCCAD.Drawing"=hex(0):
作者: cad55     时间: 2010-8-31 12:32
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.dwg]
@="YaoCCAD.Drawing"

[HKEY_CLASSES_ROOT\.dwg\ShellNew]
"NullFile"=""
作者: cad55     时间: 2010-8-31 12:33
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{65B241A2-3199-4B3F-ADA7-D2DCFD7192E3}\ProgID]
@="YaoCCAD.Drawing"
作者: cad55     时间: 2010-8-31 12:34
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing]
@="YaoCCAD Drawing"

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\CLSID]
@="{65B241A2-3199-4B3F-ADA7-D2DCFD7192E3}"

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\DefaultIcon]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\Insertable]
@=""

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\protocol]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\protocol\StdFileEditing]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\protocol\StdFileEditing\server]
@="C:\\PROGRA~1\\YaoCCAD\\YaoCCAD.exe"

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\protocol\StdFileEditing\verb]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\protocol\StdFileEditing\verb\0]
@="&Edit"

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell]
@=""

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\open]
@=""

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\open\command]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\open\ddeexec]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\print]
@=""

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\print\command]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\print\ddeexec]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\printto]
@=""

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\printto\command]

[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\shell\printto\ddeexec]
作者: cad55     时间: 2010-8-31 12:35
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dwg\OpenWithProgids]
"AutoCAD.Drawing.16"=hex(0):
"YaoCCAD.Drawing"=hex(0):
作者: cad55     时间: 2010-8-31 12:35
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dwg]
@="YaoCCAD.Drawing"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dwg\ShellNew]
"NullFile"=""
作者: cad55     时间: 2010-8-31 12:36
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing]
@="YaoCCAD Drawing"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\CLSID]
@="{65B241A2-3199-4B3F-ADA7-D2DCFD7192E3}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\DefaultIcon]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\Insertable]
@=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\protocol]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\protocol\StdFileEditing]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\protocol\StdFileEditing\server]
@="C:\\PROGRA~1\\YaoCCAD\\YaoCCAD.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\protocol\StdFileEditing\verb]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\protocol\StdFileEditing\verb\0]
@="&Edit"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell]
@=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\open]
@=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\open\command]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\open\ddeexec]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\print]
@=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\print\command]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\print\ddeexec]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\printto]
@=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\printto\command]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\YaoCCAD.Drawing\shell\printto\ddeexec]
作者: cad55     时间: 2010-8-31 12:37
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1214440339-706699826-725345543-500\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dwg\OpenWithProgids]
"AutoCAD.Drawing.16"=hex(0):
"YaoCCAD.Drawing"=hex(0):
作者: cad55     时间: 2010-8-31 12:38
先谢一下
作者: slore     时间: 2010-8-31 12:54
[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\DefaultIcon]
DefaultIcon默认是空,所以如果是0字节的话是没有图标的。
一般都是文件图标是根据这里来的。


[HKEY_CLASSES_ROOT\YaoCCAD.Drawing\CLSID]
@="{65B241A2-3199-4B3F-ADA7-D2DCFD7192E3}"
说明有个DLL。。。

HKEY_CLASSES_ROOT\CLSID\{65B241A2-3199-4B3F-ADA7-D2DCFD7192E3}
你可以看看,是个DLL文件应该。

如果要其他的某个类型支持这种,估计得写个DLL了,或者改造它这个DLL。
作者: cad55     时间: 2010-8-31 14:37
谢谢了,,

这是CAD图标文件
acadficn.dll

[ Last edited by cad55 on 2010-8-31 at 14:38 ]
附件 1: acadficn16.rar (2010-8-31 14:38, 142.91 K,下载次数: 2)

作者: slore     时间: 2010-8-31 20:36
这不装CAD也不清楚。。。反正是要写DLL的。。。