把文件添加到RES资源中如何释放使用
我在编译的时候只要使用fileinstall这个函数添加文件就会报毒,我现在想采用添加资源的方式把文件加入但是不知道如何释放和调用。#PRE_Res_File_Add=test.txt
我想在每次需要使用test.txt的时候就释放然后重命名ReadME.txt 搜到的几个可以用的,没报毒所有没用过:
http://www.autoit3.cn/forum.php?mod=viewthread&tid=3889&highlight=AutoIt3Wrapper
http://www.autoit3.cn/forum.php?mod=viewthread&tid=14430&highlight=AutoIt3Wrapper 写了个例子,不需要另外下载 resources UDF ,使用内置API UDF
将测试用的 test.txt 文件和本脚本放在一起,编译后再运行。
#AutoIt3Wrapper_Res_File_Add = test.txt, RT_RCdata, txt
#include <WinAPIRes.au3>
Local $str = _Res_GetTxt('txt')
If Not @error Then MsgBox(0, '', $str)
Func _Res_GetTxt($sRcName)
Local $hInstance = _WinAPI_LoadLibraryEx(@AutoItExe, $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then Return SetError(1)
Local $hResource = _WinAPI_FindResource($hInstance, 10, $sRcName)
If Not $hResource Then Return SetError(2)
Local $iSize = _WinAPI_SizeOfResource($hInstance, $hResource)
Local $hData = _WinAPI_LoadResource($hInstance, $hResource)
Local $pData = _WinAPI_LockResource($hData)
Local $tData = DllStructCreate('byte[' & $iSize & ']', $pData)
Local $str = BinaryToString(DllStructGetData($tData, 1))
_WinAPI_FreeLibrary($hInstance)
Return $str
EndFunc ;==>_Res_GetTxt 回复 3# afan
多谢A大,原来添加资源调用要写这么多,慢慢了解一下。{:face (396):} 回复 3# afan
A大你是什么版本呢,我这里AutoIt3.3.13.12编译会出错。
本帖最后由 tubaba 于 2018-6-2 18:43 编辑
不能使用X64编译,官网有个UDF挺好用的.不只是text,各种资源都可以放入RES.
可以考虑 BASE64 编码。
参考:
http://www.autoit3.cn/thread-56736-1-1.html 捐赠二维码(内存图片)源码
http://www.autoit3.cn/thread-35935-1-1.html BASE64 编解码 回复 5# heroxianf
我用的 3.3.14.2 ~ 好人,谢谢提供 期待全面谢谢
页:
[1]