最近想做一个文件图标修改器
设计了下,程序分为两个部分
1.提取图标
2.修改图标
--------------------
修改图标部分已经做好了,但是我再提取图标这里遇到了麻烦..
网上说的提取图标的办法是利用ExtractIcon和DrawIcon实现的
虽然可以把图标提权出来,但是提取出的却不是标准图标(32色的)---
提取出的ico文件是24色的...
这种24色的ico是不可以用来修改EXE文件的图标的. 于是网上查了下,发现了问题所在:
图标是EXE程序里的资源,如果要是利用DrawIcon来画图标的话,最后保存出来的就不是原来的资源了,导致色位发生了变化
(提取资源貌似要用FindResource和LockResource等函数,我不会用晕..)网上关于VB提取程序的资源文章很少,找不到参考的资料,麻烦有这个代码或者知道如何做VB资源提取的朋友们指点下啊 ---------------------------------------------
设计了下,程序分为两个部分
1.提取图标
2.修改图标
--------------------
修改图标部分已经做好了,但是我再提取图标这里遇到了麻烦..
网上说的提取图标的办法是利用ExtractIcon和DrawIcon实现的
虽然可以把图标提权出来,但是提取出的却不是标准图标(32色的)---
提取出的ico文件是24色的...
这种24色的ico是不可以用来修改EXE文件的图标的. 于是网上查了下,发现了问题所在:
图标是EXE程序里的资源,如果要是利用DrawIcon来画图标的话,最后保存出来的就不是原来的资源了,导致色位发生了变化
(提取资源貌似要用FindResource和LockResource等函数,我不会用晕..)网上关于VB提取程序的资源文章很少,找不到参考的资料,麻烦有这个代码或者知道如何做VB资源提取的朋友们指点下啊 ---------------------------------------------
解决方案 »
- vb 中如何多次查询数据库中数据在datagrid中显示
- 求VB编写的更换某一exe文件的代码
- 虾米在此请教各位大虾一个人工智能以及算法的问题(急上加急)有劳各位大虾
- 有没有可以控制windows2000系统日志文件的api函数啊?
- 在一个程序中如何对一个文件多次打开操作,Flashget是不是这样做的,还有BT软件
- 界面控制
- 标号如何定义
- 我的WebBrowser句子曾在winme下运行!可在98下不认??
- 请问药品GSP管理是什么东东?有知道的能解释一下吗?谢谢
- 用printer对象编写打印程序如何判断一行到底要换行了?
- treeview上点左健选中整个控件而不是节点,帮忙解决(图片控件上也是如此)
- 在一过程里,程序执行有没有先后顺序?
http://hi.baidu.com/gui6666/blog/item/d7b72e7f67d3c80929388a04.html
应该不是很难
知道PE结构就好办。
http://blog.vbgood.com/index.php/65763/action_viewspace_itemid_3130.html
记个资料地址
硬盘里面找到一个别人写好的代码
希望对你有用
Public Function GetDataArray(ByVal ResType As String, ByVal ResName As String) As Variant
Dim hRsrc As Long
Dim hGlobal As Long
Dim arrData() As Byte
Dim lpData As Long
Dim arrSize As Long
If IsNumeric(ResType) Then hRsrc = FindResourceByNum(hModule, ResName, CLng(ResType))
If hRsrc = 0 Then hRsrc = FindResource(hModule, ResName, ResType)
If hRsrc = 0 Then Exit Function
hGlobal = LoadResource(hModule, hRsrc)
lpData = LockResource(hGlobal)
arrSize = SizeofResource(hModule, hRsrc)
If arrSize = 0 Then Exit Function
ReDim arrData(arrSize - 1)
Call CopyMemory(arrData(0), ByVal lpData, arrSize)
Call FreeResource(hGlobal)
GetDataArray = arrData
End FunctionPublic Sub SaveData(ByVal sFileName As String, arrData As Variant)
Dim nFile As Integer
Dim arr() As Byte
arr = arrData
nFile = FreeFile
Open sFileName For Binary As #nFile
Put #nFile, , arr
Close #nFile
End Sub SaveData cdlg.FileName, srcArr关键代码