马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 kf2004 于 2019-2-8 16:18 编辑
第一次使用按键精灵内存修改,为了试验就找了植物大战僵尸
我系统64位 win7
[按键精灵] 纯文本查看 复制代码 //创建大漠并得到大漠的版本
Set dm = CreateObject("dm.dmsoft")
TracePrint "当前大漠注册版本号: " & dm.ver()
Hwnd = Plugin.Window.Find("MainWindow", "植物大战僵尸中文版")
TracePrint "游戏窗口句柄= "& Hwnd
If Hwnd < 1 Then
MessageBox "游戏无法找到"
EndScript
End If
GameId = Plugin.SysEx.GetProcessID(hwnd)
TracePrint "游戏进程ID=" & GameId
Val = Plugin.Memory.Read32Bit(Hwnd, &H6A9F78)'一级基址
TracePrint "一级基址= "&Val
Val = Plugin.Memory.Read32Bit(Hwnd, Val + &H768)'二级基址
TracePrint "二级基址= "&Val
Val = Plugin.Memory.Read32Bit(Hwnd, Val + &H5560)'阳光地址
TracePrint "官方获取 阳光= " & Val
//下面是大漠的
阳光地址 = "[[<PlantsVsZombies.exe>+2A9F78]+768]+5560"
'冷却时间 = "[[[<PlantsVsZombies.exe>+2A9F78]+768]+144]+70"
value = dm.ReadInt(hwnd, 阳光地址, 0)
TracePrint "大漠获取 阳光= " & value
返回 = dm.SetMemoryHwndAsProcessId(1)
TracePrint "进程ID来使用内存接口情况: 0失败 1成功 当前= " & 返回
dm_ret = dm.WriteInt(hwnd, 阳光地址, 0, 100)
TracePrint "修改情况: 0失败 1成功 当前= " &dm_ret
'value = dm.ReadInt(hwnd, 冷却时间, 0)
'value16 = Lib.自建函数.进制转换(value,10,16)
'TracePrint "大漠获取 冷却时间= " & value & " ,十六进制=" & value16
读取内存数据一切都正常,就是无法修改,
不管我用不用"返回 = dm.SetMemoryHwndAsProcessId(1)"
dm_ret = dm.WriteInt(hwnd, 阳光地址, 0, 100) 始终返回0
要怎么样才能修改内存值??
|