找回密码
 加入
搜索
查看: 28968|回复: 49

[原创] 一个简单的file2bin小工具

 火... [复制链接]
发表于 2014-8-16 20:39:10 | 显示全部楼层 |阅读模式
本帖最后由 tubaba 于 2016-10-29 13:12 编辑

此工具不再更新.如有需要请使用au3encode,在代码转换页里已包含了本工具所有功能.并有扩展

一句话说明,就是把任何一个文件以二进制的方式保存在au3脚本中,并按要求释放文件

与fileinstall功能类似,但不同的是,这个工具将二进制文件转换成au3脚本格式,在使用时只要包含在主脚本,即可按要求生成二进制文件,如果目标文件是文本文件,这个工具还可以生成一个au3写文本的脚本,它的作用将源文件文本保存在AU3函数中,执行这个函数就可以得到与源文件相同的文件,我经常用它来得到写文本的AU3代码,来放入我其它的程序中,比如一个简单的she皮肤预览小工具(自带皮肤),支持生成引用代码,这个程序生成引用代码就是用这个工具得到的

使用方法,直接将目标文件拖入程序框体即可

也许有人说,直接用fileinstall不就成了,但我要说的是,这个可比fileinstall好用多了,最简单的应用就是用它生成一个写脚本源代码的脚本,包含到你的程序中,需要的时候即可释放,再也不怕代码丢失了

下面是用这个程序生成的代码,执行它试试
#include-Once
_Txt()
Func _Txt($ReleaseDir = @ScriptDir)         ;生成的目标文件路径
        Local $FilePath = $ReleaseDir & "\说明_New.au3"
        Local $Target = FileOpen($FilePath, 2 + 8)
        If $Target = -1 Then Return SetError(1, 0, False)
        FileWriteLine($Target, '#PRE_UseX64=n')
        FileWriteLine($Target, 'If @AutoItX64 Then')
        FileWriteLine($Target, "MsgBox(64,'错误','请使用X86架构的autoit运行此脚本')")
        FileWriteLine($Target, 'Exit')
        FileWriteLine($Target, 'EndIf')
        FileWriteLine($Target, ';~ 说明:')
        FileWriteLine($Target, ';~ 1.把"_SHE.au3"和"SkinH.au3"放入到主脚本目录下')
        FileWriteLine($Target, ';~ 2.请使用X86版本编译')
        FileWriteLine($Target, ';~ 3.在你的主脚本文件内加入以下几行:')
        FileWriteLine($Target, '')
        FileWriteLine($Target, '#include "_SHE.au3"')
        FileWriteLine($Target, '#include "SkinH.au3"')
        FileWriteLine($Target, 'Global $fShe = _SHE()')
        FileWriteLine($Target, '_SkinH_AttachEx($fShe)')
        FileWriteLine($Target, '_SkinH_SetAero(1)')
        FileWriteLine($Target, '')
        FileWriteLine($Target, 'Local $test')
        FileWriteLine($Target, "$test &='说明:' & @CRLF")
        FileWriteLine($Target, "$test &='1.把" & '"_SHE.au3"和"SkinH.au3"放入到主脚本目录下' & "' & @CRLF")
        FileWriteLine($Target, "$test &='2.请使用X86版本编译' &  @CRLF")
        FileWriteLine($Target, "$test &='3.在你的主脚本文件内加入以下几行:' & @CRLF")
        FileWriteLine($Target, "$test &='#include " & '"_SHE.au3"' & "' & @CRLF")
        FileWriteLine($Target, "$test &='#include " & '"SkinH.au3"' & "' & @CRLF")
        FileWriteLine($Target, "$test &='Global $fShe = _SHE()' & @CRLF")
        FileWriteLine($Target, "$test &='_SkinH_AttachEx($fShe)' & @CRLF")
        FileWriteLine($Target, "$test &='_SkinH_SetAero(1)' & @CRLF")
        FileWriteLine($Target, "MsgBox(64,'说明',$test)")
        FileClose($Target)
        Return SetError(0, 0, True)
EndFunc
源码回复可见
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

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

×
 楼主| 发表于 2014-8-16 21:26:26 | 显示全部楼层
本帖最后由 tubaba 于 2014-8-16 21:32 编辑

另一个应用:有一行文本,同时包含多个单引号,双引号,比如下面这行
$test &='1.把"_SHE.au3"和' & "'SkinH.au3'放入到主脚本目录下'" & @CRLF

如果要msgbox上面这句话,看到这么多的引号会不会头晕??那么上面这个工具就派用场了,把这句话保存为一个文本,选择生成au3写文本代码,处理之后得到以下代码:
Func _FiletTxt($ReleaseDir = @ScriptDir)         ;生成的目标文件路径
        Local $FilePath = $ReleaseDir & "\File2Bin.zip_Txt_New.au3"
        Local $Target = FileOpen($FilePath, 2 + 8)
        If $Target = -1 Then Return SetError(1, 0, False)
        FileWriteLine($Target, "$test &='1.把" & '"_SHE.au3"和' & "' & " & '"' & "'SkinH.au3'放入到主脚本目录下'" & '" & @CRLF')
        FileClose($Target)
        Return SetError(0, 0, True)
EndFunc
原来如此简单
msgbox(0,0,"$test &='1.把" & '"_SHE.au3"和' & "' & " & '"' & "'SkinH.au3'放入到主脚本目录下'" & '" & @CRLF')
发表于 2014-8-16 23:57:35 | 显示全部楼层
我还是没理解明白
发表于 2014-8-17 00:27:15 | 显示全部楼层
帮你测试了
发表于 2014-8-17 03:00:29 | 显示全部楼层
没太懂什么意思。
发表于 2014-8-17 14:12:57 | 显示全部楼层
看啊可能、、、
发表于 2014-8-17 16:20:35 | 显示全部楼层
收藏,一会下载测试。
发表于 2014-8-18 09:54:03 | 显示全部楼层
感谢感谢,学习,学习
发表于 2014-8-18 11:22:35 | 显示全部楼层
回复 1# tubaba

這是個好東西!!
這個有源碼嗎?? 我是繁體的 沒源碼轉換一下 我用不了的
发表于 2014-8-18 16:45:45 | 显示全部楼层
感谢分享,收藏了。
发表于 2014-8-18 17:25:24 | 显示全部楼层
看的不是很明白
发表于 2014-8-19 18:27:15 | 显示全部楼层
回复看看先。
发表于 2014-8-19 20:25:27 | 显示全部楼层
回复看看源码
发表于 2014-8-20 08:55:51 | 显示全部楼层
我和楼主之间肯定有一个人的语文是体育老师教的!
发表于 2014-8-20 14:00:31 | 显示全部楼层
看看是什么东西
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-21 20:20 , Processed in 0.090687 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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