木头人 发表于 2011-8-9 00:12:25

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

感觉用Fileinstall真的很不好,很容易被认成是病毒,而且每次都释放出来容易吓到人,就不能真正的内置吗?我记得以前学 delphi 时,图片是可以直接内置到程序中的,而不是每次都释放。

republican 发表于 2011-8-9 07:10:47

回复 1# 木头人

参考 resources 的UDF.

happytc 发表于 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
        Local $p_Bitmap = DllCall($ghGDIPDll, "int", "GdipCreateBitmapFromStream", "ptr", $p_Stream, "int*", 0)
        $p_Bitmap = $p_Bitmap
        $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 Then _WinAPI_DeleteObject($a_Ret)
EndFunc

mo_shaojie 发表于 2011-8-9 08:19:58

内置似乎现在还没有解决存在的问题.

happytc 发表于 2011-8-9 08:21:26

其实,为什么要Install那种方式偷偷摸摸的呢,直接跟exe打包在一起不行呀?
你看正规点的软件,都是直接把图片放在程序目录。现在早就不流行单EXE文件时代了吧

happytc 发表于 2011-8-9 08:29:53

内置似乎现在还没有解决存在的问题.
mo_shaojie 发表于 2011-8-9 08:19 http://www.autoitx.com/images/common/back.gif


    啥意思?

bakefish 发表于 2011-8-9 19:15:45

其实,为什么要Install那种方式偷偷摸摸的呢,直接跟exe打包在一起不行呀?
你看正规点的软件,都是直接把 ...
happytc 发表于 2011-8-9 08:21 http://www.autoitx.com/images/common/back.gif


    可能怕别人替换图片吧,比如logo

bakefish 发表于 2011-8-9 19:16:35

内置似乎现在还没有解决存在的问题.
mo_shaojie 发表于 2011-8-9 08:19 http://www.autoitx.com/images/common/back.gif


    早解决了吧,方法很多,但基本思路和楼上差不多

netegg 发表于 2011-8-9 23:36:33

按楼主的意图,3楼的办法是最简单的,不过楼主注意了,你的图片过大的话,脚本小不了

powerofos 发表于 2011-8-15 10:23:28

新手学习中。。。
kimgmax 发表于 2011-8-15 09:58 http://www.autoitx.com/images/common/back.gif


你厉害,整个求助板块都被你“学习”完了。
页: [1]
查看完整版本: 关于图片问题,除了 Fileinstall 还有其它办法能将图片内置吗?