vb如何设置篮球赛vb模拟器下载

对不起,我想这是不可能的,因为VB是一个如此简单的语音。&如果有人
这么告诉你,别去理他。我可以肯定告诉你,对于制作修改器这种简单的
,VB完全可以胜任。
然而,有个问题必须首先考虑:使用VB编写的修改器需要VB的运行库才能运行
。如果考虑到有些使用者(实际上可能是大部分使用者)没有运行库,那么在最
后制作的ZIP压缩文件中就必须包含这些庞大的文件。在下面的教程里我将制
作一个修改器,如果为它再制作一个安装程序,那么整个修改器的体积将超过
1MB。其中包括一个很好的安装和反安装程序,但大部分还是VB40032.DLL这个
文件。
除了以上这点,使用VB制作修改器是非常简单的。一旦制作了多次后,你会发
现能很快地制作出一个修改器。而且使用VB制作的修改器能够毫无困难地解决
运行时的内存分配问题,因此即使是最新的游戏,也可以使用VB制作
修改器。在本教程中将不涉及动态内存分配,因为虽然简单,但仍然属于一个
高级的选项。
一些背景
不象C语音,VB不会自动包括普通的API函数的声明,因此我们必须把他们加入
我们的文件。在几乎所有的修改器中会使用到6个主要的函数,讨论如下

1. FindWindow(ClassName, WindowTitle) - FindWindow 返回符合指定的类
名( ClassName )和窗口名( WindowTitle )的窗口句柄。对我们来说,可以让
ClassName 为空( Null ),只给出游戏的 WindowTitle。函数应该这样声明:
Declare Function FindWindow Lib &user32& Alias &FindWindowA& (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
2. GetWindowThreadProcessId(WindowHandle, ProcessId) - 在这里我们把
FindWindow 函数中得到的句柄作为参数,来获得进程标识符(ProcessId )。
声明如下: Declare Function GetWindowThreadProcessId Lib &user32&
(ByVal hwnd As Long, lpdwProcessId As Long) As Long
3. OpenProcess(DesiredAccess, Inherit, ProcessId) - 这个函数将返回一
个我们目标进程的句柄,可以用来对目标进行读写操作。 DesiredAccess 参
数的值决定了句柄对进程的存取权利,对我们来说,要使用
PROCESS_ALL_ACCESS (完全存取权限)。Inherit 应该总是 False。
ProcessId 是从 GetWindowThreadProcessId 函数中取得的。 Declare
Function OpenProcess Lib &kernel32& (ByVal dwDesiredAccess As Long,
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
4. CloseHandle(ProcessHandle) - 每一个打开的句柄必须呼叫这个函数来关
闭。 Declare Function CloseHandle Lib &kernel32& (ByVal hObject As
Long) As Long
5. WriteProcessMemory(ProcessHandle, Address, value, Sizeofvalue,
BytesWritten) - 把指定的值 value 写入由 Address 指定的目标地址。
Declare Function WriteProcessMemory Lib &kernel32& (ByVal hProcess
As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal
nSize As Long, lpNumberOfBytesWritten As Long) As Long
6. ReadProcessMemory(ProcessHandle, Address, value, Sizeofvalue,
BytesWritten) - 把 Address 指定的目标地址的值存入 value 位置的变量中
。 Declare Function WriteProcessMemory Lib &kernel32& (ByVal
hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any,
ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
这些函数一环扣一环,缺一不可。更详细的内容可以参考VB的帮助文件。?
一个简单的修改器范例
如何使上面介绍的这些函数一起工作,制作出我们需要的修改器呢?下面是一
个为的计算器程序制作修改器的例子。这个修改器将读出计算器窗口
中显示的数值,并在点击一个按钮后在计算器窗口中显示我们的名字。
首先我们需要找到计算器显示窗口中显示值的地址。本教程不是关于如何进行
内存搜索,因而我将只作简单的说明:
· 在计算器窗口中输入123456
· 使用你喜欢的任何一种内存地址搜索程序寻找字串123456
· 使用另一个值重复上面的过程直到只返回1个地址
那是制作我们的修改器需要的唯一一个地址。在我的计算器程序里这个地址是
40B181 hex, 4239745 dec。用你找到的地址替代在下面的代码里使用的这个
地址。
现在让我们开始设计修改器的界面:
· 在VB中新建一个项目,加入一个文本框( Textbox )、一个按钮和一个计时
器( timer )。文本框用来显示从计算器窗口取得的字串,按钮用来把我们的
名字传到计算器窗口
· 把表单( form )的标题( Caption )属性设为 Calculator Trainer
· 把文本框改名为 txtDisplay 并清除 Text 属性
· 把计时器改名为 ReadTimer 并把间隔( interval )设为500
· 把按钮的标题改为 Display Name,按钮的名字改为 btnPasteName
在这个修改器中我们将使用所有6个函数,ReadProcessMemory、WriteProcess
Memory、OpenProcess、GetWindowThreadProcessId、FindWindow 和
CloseHandle。在项目中插入一个新的模块,增加下列代码。(下面的一些行自
动换行了,在你的模块中每一句必须在一行里,或使用延长符_)
Declare Function FindWindow Lib &user32& Alias &FindWindowA& (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindowThreadProcessId Lib &user32& (ByVal hwnd
As Long, lpdwProcessId As Long) As Long
Declare Function OpenProcess Lib &kernel32& (ByVal dwDesiredAccess
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As
Long
Declare Function WriteProcessMemory Lib &kernel32& (ByVal hProcess
As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal
nSize As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function ReadProcessMemory Lib &kernel32& (ByVal hProcess As
Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize
As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function CloseHandle Lib &kernel32& (ByVal hObject As Long)
As Long
下面我们要开始写在计时器窗口中显示我们名字的代码了。首先我们使用
FindWindow 函数取得目标窗口的句柄。把这个返回值保存在一个变量中,并
检查它的值是否出错来确保计时器程序正在运行。(FindWindow函数出错时返
回0)
Dim hwnd As Long
hwnd = FindWindow(vbNullString, &Calculator&)
If (hwnd = 0) Then
MsgBox &Window not found!&
Exit Sub
End If
注意在这里我们传递了一个 Null 值给 FindWindow 函数,而不是 ClassName
。因此任何名为 Calculator 的窗口都符合条件。如果知道计算器程序窗口的
ClassName,你可以传给它,但这不是必须的。
现在使用得到的窗口句柄来取得进程标识符( ProcessId )。注意 pid 是作为
参数传递给函数的,而不是被赋以函数返回值。
Dim pid As Long
GetWindowThreadProcessId hwnd, pid
再利用变量pid得到计算器程序的进程句柄。再次检查函数的返回值,如果是
非法数据则退出程序。
Dim pHandle As Long
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox &Couldn't get a process handle!&
Exit Sub
End If
在我们的修改器中 WriteProcessMemory 函数是最重要的部分,而且非常容易
出错。不妨让我们再仔细讨论一下它的参数。
WriteProcessMemory (ByVal hProcess As Long, ByVal lpBaseAddress As
Any, ByVal lpBuffer As Any, ByVal nSize As Long,
lpNumberOfBytesWritten As)
hProcess 是目标进程的句柄,从上面的 OpenProcess 函数中取得的。
lpBaseAddress 是在计算器程序的虚拟内存中将要被修改的地址,也就是使用
内存搜索程序找到的那个地址。(在我的程序里是&H40B181)
lpBuffer 是将要写如上述地址的数据,可以是一个数值、数组、或其
他任何数据类型。
nSize 是希望写入 lpBaseAddress 的字节数。这个位置应该与你的数据类型
相符。如果写入的是一个长整数( long ),这里应该是4。如果写入的是一个
字符串,那么这里应该是字符串的长度。
lpNumberOfBytesWritten 是函数执行返回后,写入目标地址的实际字节数。
它能被用来确认函数实际的执行情况。
把我们的数据放到函数中,得到 WriteProcessMemory pHandle, &H40B181,
&Beans&, 5, 0&。我把0传递到 lpNumberOfBytesWritten 位置是因为不需要
检查两次实际写入的字节数。
最后通过传递进程句柄给 CloseHandle() 函数来关闭由 OpenProcess 打开的
句柄。
CloseHandle hProcess
现在将所有的代码输入我们的中。双击按钮,显示它的代码编辑窗口。
代码应该加到名为 btnPasteName 的 Click 事件中。(不必输入注释)
Private Sub btnPasteName_Click()
' 声明一些需要的变量
Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄
Dim pid As Long ' 储存进程标识符( Process Id )
Dim pHandle As Long ' 储存进程句柄
' 首先取得目标窗口的句柄
hwnd = FindWindow(vbNullString, &Calculator&)
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, &H40B181, &Beans&, 5, 0&
' 关闭进程句柄
CloseHandle hProcess
End Sub
完毕。现在单击按钮将使计算器窗口文本变为我们键如的名字。(可能需要最
小化计算器程序,再还原,以便程序更新显示)
下面将给我们的修改器增加一个新功能。我们将检测计算器程序的窗口显示数
据,并在修改器中显示。双击计时器,显示它的代码编辑窗口,然后输入以下
代码:
Private Sub ReadTimer_Timer()
' 声明变量
Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄
Dim pid As Long ' 储存进程标识符
Dim pHandle As Long ' 储存进程句柄
Dim str As String * 20 ' 显示文本
' 取得目标窗口的句柄
hwnd = FindWindow(vbNullString, &Calculator&)
If (hwnd = 0) Then Exit Sub
' 取得进程标识符
GetWindowThreadProcessId hwnd, pid
' 取得进程句柄
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then Exit Sub
' 读取内存数据
ReadProcessMemory pHandle, &H40B181, str, 20, 0&
' 在文本框显示
txtDisplay = str
' 关闭进程句柄
CloseHandle hProcess
End Sub
在这里出现的新东西是 ReadProcessMemory 函数。从 &H40B181 地址中读出
的数据被存入变量 str 中,然后显示在名为 txtDisplay 的文本框中。
本教程中所讲的是非常简单的东西,主要是想起抛砖引玉的目的。最重要的是
不断学习,不断实践,了解其他的API并在修改器中使用潜艇模拟器金币修改版
潜艇模拟器
更新时间:
下载:2,800次
平台:Android
优派VB733潜艇模拟器金币修改版
游戏金币修改版是指针对有赚取金币设置的游戏的加强版,通过修改一些bug以及优化一些设计让玩家玩起来更爽。赚金币的方法可谓多种多样,不同游戏的设计不同,有的玩家喜欢打怪赚金币,有的玩家喜欢通过买卖道具来赚金币。很多玩家都在找金币修改版,网上可能有很多虚假的下载信息,小编还是建议大家在九游下载正版,金币修改版有一定的风险容易造成手机中毒,我们真心没必要为了游戏的金币丢失现实的money呀!
请选择品牌
请选择机型VB733
小贴士:建议您想先设置机型,设置后您就直接浏览全部适合您手机的游戏,下载使用更放心。
九游()是手机游戏下载第一门户,提供最新优派优派VB733下载、礼包、激活码,最好玩的潜艇模拟器攻略,欢迎访问与玩家交流。
《 Submarine Simulator 3D》是一款模拟潜艇驾驶的游戏。游戏没有任务或者关卡的设定,只是用直观的操作,让你驾驶潜艇到处遨游探索。你可以看到优美的海面,也可以探索漆黑的深海,赶紧试试把。
点击查看更多
您可能还想关注:
看了潜艇模拟器金币修改版的用户还看了:
关于优派VB733
ViewSonic(优派)是全球视讯的领导厂商,由杰出华人企业家朱家良先生于1987年在美国加州南部创立。 专区提供最新手机游戏免费下载。
VB733的分辨率为480*800,是优派生产的一款触屏手机。优派VB733手机用户可通过九游下载。恐龙之岛模拟器中文版
更新时间:
下载:62,876次
平台:Android
优派VB733恐龙之岛模拟器中文版
最近看到不少玩家都在搜索模拟器中文版,这款游戏的模拟器一出来就受到不少玩家的喜爱,好评不断。不过各位玩家要注意的是有些模拟器对电脑的配置要求比较高,所以要根据自己的实际情况选择合适的模拟器。
请选择品牌
请选择机型VB733
小贴士:建议您想先设置机型,设置后您就直接浏览全部适合您手机的游戏,下载使用更放心。
九游()是手机游戏下载第一门户,提供最新优派优派VB733下载、礼包、激活码,最好玩的恐龙之岛攻略,欢迎访问与玩家交流。
《 Dino Island》是一款特别的休闲游戏。游戏中你可以扮演任意一种恐龙,包括有迅猛龙,棘龙,剑龙,三角龙等等。你将要在恐龙之岛上生存下来。如果你是食草恐龙,就努力寻找食物吧。如果你是肉食恐龙,赶紧盯上落单的猎物,去狩猎吧。
点击查看更多
您可能还想关注:
看了恐龙之岛模拟器中文版的用户还看了:
关于优派VB733
ViewSonic(优派)是全球视讯的领导厂商,由杰出华人企业家朱家良先生于1987年在美国加州南部创立。 专区提供最新手机游戏免费下载。
VB733的分辨率为480*800,是优派生产的一款触屏手机。优派VB733手机用户可通过九游下载。能不能用VB来制作一个dnf强化模拟器_百度知道
能不能用VB来制作一个dnf强化模拟器
我对此软件不是很了解,强化的成功与失败我的想法是让他随即显示一个范围内的数,随即生成数字在计算器上我一直用的是RAN#,一点点中的一点点我是一名高一学生,判断他大小来判断强化成功与否。其他算钱方面。在学校学了一点点VB,但是想尝试下做强化模拟器,就差这个随机的,贴图什么的我都解决好了,还有,强化几率,VB上有没有啥类似的,我想知道有什么好的方法
我有更好的答案
它只能产生大于等于0 小于1(不等于1)的三位小数的数;Rand() 函数使用前需使用 Randomize 才能实现真正的随机如Randomizea=Rand()高中的应该是VB6?
'.0 吧;,所以就要用一个循环do
a=Rand()loop until a&gt? and a&lt
其他类似问题
为您推荐:
dnf强化的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 天天模拟器如何设置 的文章

 

随机推荐