找回密码
 加入
搜索
查看: 2002|回复: 9

[AU3基础] 把文件添加到RES资源中如何释放使用

    [复制链接]
发表于 2018-5-31 17:05:21 | 显示全部楼层 |阅读模式
我在编译的时候  只要使用fileinstall这个函数添加文件就会报毒,我现在想采用添加资源的方式把文件加入但是不知道如何释放和调用。

#PRE_Res_File_Add=test.txt

我想在每次需要使用test.txt的时候就释放然后重命名ReadME.txt
发表于 2018-6-1 01:00:20 | 显示全部楼层
发表于 2018-6-1 01:11:51 | 显示全部楼层
写了个例子,不需要另外下载 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
 楼主| 发表于 2018-6-1 08:19:11 | 显示全部楼层
回复 3# afan

多谢A大,原来添加资源调用要写这么多,慢慢了解一下。
 楼主| 发表于 2018-6-1 08:22:23 | 显示全部楼层
回复 3# afan

A大你是什么版本呢,我这里AutoIt3.3.13.12编译会出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2018-6-1 08:43:56 | 显示全部楼层
本帖最后由 tubaba 于 2018-6-2 18:43 编辑

不能使用X64编译,官网有个UDF挺好用的.不只是text,各种资源都可以放入RES.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2018-6-1 09:06:29 | 显示全部楼层
可以考虑 BASE64 编码。
参考:
http://www.autoit3.cn/thread-56736-1-1.html 捐赠二维码(内存图片)源码
http://www.autoit3.cn/thread-35935-1-1.html BASE64 编解码
发表于 2018-6-1 11:12:32 | 显示全部楼层
回复 5# heroxianf


    我用的 3.3.14.2 ~
发表于 2018-6-2 18:02:42 | 显示全部楼层
好人,谢谢提供
发表于 2018-6-2 18:07:14 | 显示全部楼层
期待全面谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 16:26 , Processed in 0.115375 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表