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

[AU3基础] 关于图片问题,除了 Fileinstall 还有其它办法能将图片内置吗?

  [复制链接]
发表于 2011-8-9 00:12:25 | 显示全部楼层 |阅读模式
感觉用Fileinstall真的很不好,很容易被认成是病毒,而且每次都释放出来容易吓到人,就不能真正的内置吗?我记得以前学 delphi 时,图片是可以直接内置到程序中的,而不是每次都释放。
发表于 2011-8-9 07:10:47 | 显示全部楼层
回复 1# 木头人

参考 resources 的UDF.
发表于 2011-8-9 08:14:20 | 显示全部楼层
回复 1# 木头人


    给你一个函数,是把保存为字符串形式的图片直接放在控件上:

;$s_Binary为二进制形式的字符串,$ctrl控件ID
Func _BinaryToCtrl($s_Binary, $ctrl) ;code by Montfrooij
        Local $b_PicData = Binary($s_Binary)
        Local $i_PicLength = BinaryLen($b_PicData)
        Local $t_PicStruct = DllStructCreate("byte[" & $i_PicLength & "]")
        DllStructSetData($t_PicStruct, 1, $b_PicData)
        Local $p_PicMemory = DllStructGetPtr($t_PicStruct)
        Local $h_Memory = _MemGlobalAlloc($i_PicLength, 2)
        Local $p_Memory = _MemGlobalLock($h_Memory)
        _MemMoveMemory($p_PicMemory, $p_Memory, $i_PicLength)
        _MemGlobalUnlock($h_Memory)
        Local $p_Stream = DllCall("Ole32.dll", "int", "CreateStreamOnHGlobal", "int", $h_Memory, "long", 1, "Int*", 0)
        $p_Stream = $p_Stream[3]
        Local $p_Bitmap = DllCall($ghGDIPDll, "int", "GdipCreateBitmapFromStream", "ptr", $p_Stream, "int*", 0)
        $p_Bitmap = $p_Bitmap[2]
        $t_PicStruct = 0
        $hBitmap2 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($p_Bitmap)
        _GDIPlus_ImageDispose($p_Bitmap)
        Local $h_Wnd = GUICtrlGetHandle($ctrl)
        Local $a_Ret = DllCall("User32.dll", "hwnd", "SendMessage", "hwnd", $h_Wnd, "int", 0x0172, "int", 0, "int", $hBitmap2)
        If $a_Ret[0] <> 0 Then _WinAPI_DeleteObject($a_Ret[0])
EndFunc
发表于 2011-8-9 08:19:58 | 显示全部楼层
内置似乎现在还没有解决存在的问题.
发表于 2011-8-9 08:21:26 | 显示全部楼层
其实,为什么要Install那种方式偷偷摸摸的呢,直接跟exe打包在一起不行呀?
你看正规点的软件,都是直接把图片放在程序目录。现在早就不流行单EXE文件时代了吧
发表于 2011-8-9 08:29:53 | 显示全部楼层
内置似乎现在还没有解决存在的问题.
mo_shaojie 发表于 2011-8-9 08:19



    啥意思?
发表于 2011-8-9 19:15:45 | 显示全部楼层
其实,为什么要Install那种方式偷偷摸摸的呢,直接跟exe打包在一起不行呀?
你看正规点的软件,都是直接把 ...
happytc 发表于 2011-8-9 08:21



    可能怕别人替换图片吧,比如logo
发表于 2011-8-9 19:16:35 | 显示全部楼层
内置似乎现在还没有解决存在的问题.
mo_shaojie 发表于 2011-8-9 08:19



    早解决了吧,方法很多,但基本思路和楼上差不多
发表于 2011-8-9 23:36:33 | 显示全部楼层
按楼主的意图,3楼的办法是最简单的,不过楼主注意了,你的图片过大的话,脚本小不了
发表于 2011-8-15 10:23:28 | 显示全部楼层
新手学习中。。。
kimgmax 发表于 2011-8-15 09:58



你厉害,整个求助板块都被你“学习”完了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 01:42 , Processed in 0.082129 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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