找回密码
 加入
搜索
楼主: 黑菜

[系统综合] 如何将要调用的图片、音乐资源整合进编译完成后的EXE里?

 火... [复制链接]
发表于 2013-1-20 22:28:07 | 显示全部楼层
回复 16# afan


    看你这么一说,想到是不是跟象vc里的resources一样的做法,试了一下。
果然套路都是一样的:
先用GetModuleHandle得到这个编译过的exe模块的句柄;
FindResourceW得到资源块入口指针
LoadResource得到第一字节的资源指针
LockResource内存块的第一个字节,为单字节指针
也就是用这几个关于资源api函数从而得到被包含进去的文件的内存指针(地址),就可以访问了。

mp3肯定是用$RT_RCDATA这个用户自定义资源类型了。
一直没有注意过,还以为au3不能包含资源到exe里呢,呵,相当不错
发表于 2013-1-21 05:05:38 | 显示全部楼层
回复 17# happytc


   楼上两位大大,能否写个au3的例子给咱们菜鸟学习学习呢?
先谢过了!!!
发表于 2013-1-21 05:22:19 | 显示全部楼层
想要包含mp3、wav、wma等声音资源的例子,感谢啦。。。
发表于 2013-1-21 11:47:19 | 显示全部楼层
想要包含mp3、wav、wma等声音资源的例子,感谢啦。。。
kxing 发表于 2013-1-21 05:22


就举个wav的吧,wav是window定义过的资源类型,最简单的访问我猜应该是下面这种:
(编译后再运行)

#AutoIt3Wrapper_Res_File_Add=C:\WINDOWS\Media\tada.wav, SOUND, MYWAV
Global Const $SND_RESOURCE = 0x00040004
Global Const $SND_ASYNC = 1
DllCall("winmm.dll", "int", "PlaySound", "str", "MYWAV", "hwnd", 0, "int", $SND_RESOURCE)
DllCall("winmm.dll", "int", "PlaySound", "str", "MYWAV", "hwnd", 0, "int", BitOR($SND_RESOURCE, $SND_ASYNC))
For $n = 1 To 100
    Sleep(20)
    ToolTip("Playing! " & $n)
Next
发表于 2013-1-21 16:29:40 | 显示全部楼层
哦?这个真的没有试过哦
发表于 2013-1-21 16:57:05 | 显示全部楼层
回复 13# guland


    新人表示无鸭梨...
发表于 2013-1-21 16:57:57 | 显示全部楼层
回复 14# haijie1223


    玩过...

意思是这种方式也是将资源以二进制嵌进.EXE里去的???
发表于 2013-1-22 22:43:08 | 显示全部楼层
学习了,学习 最重要
发表于 2013-1-23 10:53:02 | 显示全部楼层
http://www.autoitx.com/thread-28680-1-7.html  看看这个帖子,里面有你需要的东西
发表于 2013-1-24 00:13:56 | 显示全部楼层
新手不懂,帮顶
发表于 2013-1-24 01:36:01 | 显示全部楼层
resoiuce udf好像有吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-19 14:31 , Processed in 0.075644 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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