硕 硕鼠 Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-06 #1 我的程序使用FindExecutable可以找到一个文件的相关执行程序,用ExtractIcon可以从中<br>取得图标,但我不知道我应该取第几个图标,比如在我的电脑中指向JPG的执行文件和指向<br>GIF的执行文件都是 IE ,但IE中有很多图像,有的是标计JPG的有的是标计GIF的,请问<br>那个函数可以得到准确的图标位置?
我的程序使用FindExecutable可以找到一个文件的相关执行程序,用ExtractIcon可以从中<br>取得图标,但我不知道我应该取第几个图标,比如在我的电脑中指向JPG的执行文件和指向<br>GIF的执行文件都是 IE ,但IE中有很多图像,有的是标计JPG的有的是标计GIF的,请问<br>那个函数可以得到准确的图标位置?
猛 猛禽 Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-06 #2 这在注册表里,在HKEY_CLASSES_ROOT里找到.xxx的主键,其默认键值为文件类型键,<br>再在这里找到文件类型键,其DefaultIcon键的默认键值为图标所在的文件名,及其编号。
D D.Q.C Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-06 #3 用<br> var imglist: Timagelist;<br>begin<br> ImgList:= TImageList.Create(Self);<br> ImgList.ShareImages:= True;<br> ImgList.Handle:= ShGetFileInfo(nil, 0, ShFileInfo, SizeOf(SHFileInfo),<br> SHGFI_SMALLICON or SHGFI_SYSICONINDEX);<br>end;<br>所有的图标都在其中<br>若想要特定图标,只要改变第一个参数为文件名就行了,图标的index为 ShFileInfo.iHicon<br>(好像是的,你在看看帮助)
用<br> var imglist: Timagelist;<br>begin<br> ImgList:= TImageList.Create(Self);<br> ImgList.ShareImages:= True;<br> ImgList.Handle:= ShGetFileInfo(nil, 0, ShFileInfo, SizeOf(SHFileInfo),<br> SHGFI_SMALLICON or SHGFI_SYSICONINDEX);<br>end;<br>所有的图标都在其中<br>若想要特定图标,只要改变第一个参数为文件名就行了,图标的index为 ShFileInfo.iHicon<br>(好像是的,你在看看帮助)