找回密码
 加入
搜索
查看: 15502|回复: 5

[AU3基础] au3以二进制的形式修改文件能修改吗?【已解决】

  [复制链接]
发表于 2013-9-10 17:26:25 | 显示全部楼层 |阅读模式
本帖最后由 sunkiss 于 2013-9-14 10:36 编辑

我的一个文件我压缩了,我不想要别人打开,我改了扩展名,但是打开winrar,用winrar还是能打开,我知道吧文件头换成000000,就打不开了,au3能做到吗?我知道FileOpen ( "c:\1.rar" , 17 ) ,这样只是以非只读的二进制模式打开了,但是怎么修改呢?我还希望以后再写程序把000000替换成526172,到这里不会了,求教啊,各位大大们,怎么写啊?文件时$sFile="c:\1.7z"时,MsgBox(0,"sdf",_WinAPI_ReadFile($hFile, DllStructGetPtr($tBuffer), 4, $nBytes))提示的是1,换成了一个视频文件后提示是0。
$sFile="c:\1.7z"
$tBuffer = DllStructCreate("byte[4]")
$hFile = _WinAPI_CreateFile($sFile, 2, 2)
_WinAPI_SetFilePointer($hFile, 0 )
MsgBox(0,"sdf",_WinAPI_ReadFile($hFile, DllStructGetPtr($tBuffer), 4, $nBytes))
_WinAPI_ReadFile($hFile, DllStructGetPtr($tBuffer), 4, $nBytes)
_WinAPI_CloseHandle($hFile)
$sText = BinaryToString(DllStructGetData($tBuffer, 1))
$sText = BinaryToString(DllStructGetData($tBuffer, 1))
ConsoleWrite('2) ' & $sText & @CRLF)
自己搞定了,贴出来给大家看看。
$7z=FileOpen ( "c:\7.7z" , 16 ) 
$chars = FileRead($RFAVI)
$zf="0x00000000000000000000000000000000000000000000000000000000000000"
$charsok=$zf&StringTrimLeft($chars,64)
FileClose ($7z) 
$a=FileOpen ( "D:\转换结果.7z", 18)
FileWrite($a,$charsok) 
FileClose ($a) 
发表于 2013-9-10 20:53:46 | 显示全部楼层
回复 1# sunkiss
 $handl = FileOpen('sdk.rar', 16)
 $sBin  = FileRead($handl)
 $sBin2 = StringRegExpReplace($sBin, '^0x\d{6}', '0x000000')
 MsgBox(0, '', $sBin & @CRLF & @CR & $sBin2)
 FileClose($handl)
 楼主| 发表于 2013-9-10 21:15:30 | 显示全部楼层
回复 2# user3000


   谢谢你的回复,我搞定了。
发表于 2013-9-14 10:17:20 | 显示全部楼层
回复 3# sunkiss


    楼主, 我觉得有必要提醒您:
编辑的标题错了, 不是"已经解决了", 改为"已解决"就好!
发表于 2016-4-8 19:43:18 | 显示全部楼层
谢谢老师的无私分享!心底无私天地宽
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-3 11:44 , Processed in 0.075534 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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