设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1027|回复: 5
打印 上一主题 下一主题

[Access本身] 想用VBA理更改EXE文件,为什么把exe文件搞坏了?

[复制链接]
跳转到指定楼层
1#
发表于 2006-4-22 03:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想实现以下功能,但为什么执行以下操作后test.exe 坏了?

'读取二进制数据存入文件aa.bin,并用"1"覆盖test.exe中已保存的数值

Private Sub Command0_Click()
Dim ii As Integer
Dim ss ,qq As Byte
    Open "c:\aa.bin" For Binary As #1
    Open "c:\test.exe" For Binary As #2
    qq=1
For ii = 1 To 10
    Get #2, ii, ss
    Put #1, ii, ss
    Put #2, ii, qq
    Next ii
    Close #1
    Close #2
MsgBox ("ok ")
End Sub

'把文件aa.bin内容释放回test.exe 中

Private Sub Command1_Click()
Dim ii As Integer
Dim ss As Byte
    Open "c:\aa.bin" For Binary As #1
    Open "c:\test.exe" For Binary As #2
   
For ii = 1 To 10
    Get #1, ii, ss
    Put #2, ii, ss
   
    Next ii
    Close #1
    Close #2
MsgBox (" ok")
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-4-22 06:28:00 | 只看该作者
研究研究。

[此贴子已经被作者于2006-4-23 0:16:02编辑过]

3#
发表于 2006-4-24 08:05:00 | 只看该作者
Dim ss ,qq As Byte

我只是将这一句改为Dim ss As Byte,qq As Byte 其余都没有改动,拷了个exe文件测试没发现错误。
4#
发表于 2006-4-24 08:11:00 | 只看该作者
Dim ss ,qq As Byte

这样写ss就不是Byte类型,而不是Byte类型的变量在用put写入以二进制方式打开的文件时就会发生错误。
5#
发表于 2006-4-24 18:06:00 | 只看该作者
请参考:

《Dim的陷阱》
6#
 楼主| 发表于 2006-4-24 20:12:00 | 只看该作者
原来是语法问题,多谢各位大侠!

类似这样句子在我程序里还有很多,真是一个陷阱!幸亏现在知道了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 02:37 , Processed in 0.087679 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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