从Coreldraw提取cdr文件缩略图查看功能
我从来不用CorelDraw,但是出于爱好,早就想提取cdr缩略图查看功能了,但是我一直有个误会,朋友告诉我coreldraw12才有缩略图查看功能,所以我也一直以为只有coreldraw12才能查看缩略图。我一直找不到coreldraw12的下载地址,所以一直没动它。没想到今晚我安装的coreldraw11也能查看cdr文件的缩略图,早知道我就早提它了。
要提取某种文件缩略图查看功能,一般时候第一步要从文件类型入手。
首先正常安装coreldraw ,接下来打开注册表的第一根键,有一个和本类型同名的键,比如cdr文件对应“.cdr”、psd文件对应“.psd”。现在想查找cdr文件的缩略图功能,就先找到
[HKEY_CLASSES_ROOT.cdr]
这个键,然后观察一下,这个键的内容比较少,只有一个默认值的名是“CorelDRAW.Graphic.12”:(我查找的时候是在coreldraw 11和coreldraw 12中混着进行的所以文件类型编号是coreldraw 12的,但是查看缩略图的文件却是coreldraw 11的,懒得整理了)
[HKEY_CLASSES_ROOT.cdr]
@="CorelDRAW.Graphic.12"
[HKEY_CLASSES_ROOT.cdrShellNew]
@="CorelDRAW.Graphic.12"
"NullFile"=""
里面除了这些没别的啦,下一步就根据这个键值"CorelDRAW.Graphic.12" 在注册表中搜索,可以找到一个和它同名的键:
[HKEY_CLASSES_ROOTCorelDRAW.Graphic.12] 仔细观察它下面的子键名,其中有一个是ShellExIconHandler我的英文懂的不多,只认识几个简单的,看这两个字母好像是“外壳”和“ico文件”有关的,它的值是:
[HKEY_CLASSES_ROOTCorelDRAW.Graphic.12ShellExIconHandler]
@="{BF735767-E6DA-11cf-AB9B-00C0F00683EB}"
然后再根据它的值{BF735767-E6DA-11cf-AB9B-00C0F00683EB}在注册表中搜索,可以找到下面这个键
[HKEY_CLASSES_ROOTCLSID{BF735767-E6DA-11cf-AB9B-00C0F00683EB}]
@="Corel CDR Icon Handler"
[HKEY_CLASSES_ROOTCLSID{BF735767-E6DA-11cf-AB9B-00C0F00683EB}InProcServer32]
@="C:Program FilesCorelCorel GraphicsProgramsCdrIco110.DLL"
"ThreadingModel"="Apartment"
在这里可以看到一个文件所在的路径,根据经验判断,一般找到准确路径以后就算找完了,把找到的三个键值导出来,再把路径中指定的文件复制出来就算提取完了。
以上部分说的是我“总结”出来的经验,但是我在查找之前是不知道要如何查找的,所以是胡乱的找啊找的,等找到最后才发现原来这样简单。