这个当然。不过这个问题已解决了,楼上的朋友给20分行吗? 我还有个问题? 上面问题的解决是把WriteProcessMemory中的lpBaseAddress As Any改成了ByVal,请问为什么要这么改,这个函数的声明是我从API文本浏览器里COPY的?
我的和你有点不一样,我的问题是怎么能自动锁住内存 我里的H5A9080只能用于当前级别,升级后就没用了,内存地址会变,请问你是怎么实现的? Private Sub Check1_Click() ' 声明一些需要的变量 Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄 Dim pid As Long ' 储存进程标识符( Process Id ) Dim pHandle As Long ' 储存进程句柄 ' 首先取得目标窗口的句柄 hwnd = FindWindow(vbNullString, "Sword Window") If (hwnd = 0) Then MsgBox "Window not found!" Exit Sub End If ' 取得进程标识符 GetWindowThreadProcessId hwnd, pid ' 使用进程标识符取得进程句柄 pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid) If (pHandle = 0) Then MsgBox "Couldn't get a process handle!" Exit Sub End If ' 在内存地址中写入名字 WriteProcessMemory pHandle, &H5A9080, "aa", 8, 0& ' 关闭进程句柄 CloseHandle hProcess End Sub
我还有个问题?
上面问题的解决是把WriteProcessMemory中的lpBaseAddress As Any改成了ByVal,请问为什么要这么改,这个函数的声明是我从API文本浏览器里COPY的?
我里的H5A9080只能用于当前级别,升级后就没用了,内存地址会变,请问你是怎么实现的?
Private Sub Check1_Click()
' 声明一些需要的变量
Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄
Dim pid As Long ' 储存进程标识符( Process Id )
Dim pHandle As Long ' 储存进程句柄
' 首先取得目标窗口的句柄
hwnd = FindWindow(vbNullString, "Sword Window")
If (hwnd = 0) Then
MsgBox "Window not found!"
Exit Sub
End If
' 取得进程标识符
GetWindowThreadProcessId hwnd, pid
' 使用进程标识符取得进程句柄
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If
' 在内存地址中写入名字
WriteProcessMemory pHandle, &H5A9080, "aa", 8, 0&
' 关闭进程句柄
CloseHandle hProcess
End Sub
我想可能不行,这个内存值变了,其它的也会变,如果锁住这一个可能还会
引发错误!
请问你是怎么锁住内存的?!
如果有个游戏数据的内存不会变,你就可以锁定和修改他的值,如果会变,就没法子了。也就是说你就不能编内存修改器,而只好试试改存盘文件了!我的那个程序问题已经解决了,是做的英雄无敌历代记的修改器。
过些天到我的网站上去看看吧!
http://inn.xiloo.com另外,这个问题怎么结贴呢?平分吧!