抽空学习VB,VC++之 VB游戏外挂学习制作(一)
2007-03-31 20:25
549 查看
看了一些文章,找了一些书,就开始学吧,至于LINUX内核,当然应该完全分析完毕。
写不出多深的解释,干脆就不解释,我觉得任何一本书或者基础资料都会讲得比较好。
结构理清楚,代码排好,这应该才是最主要的。
今天就来最初步的,我也刚学到一点。慢慢来咯。(声明:其中的代码半抄半加)。
实验一:自动在记事本写一些字。
需要的知识:
1。怎么用VB调用WINDOWS API?
2。找到记事本的句柄
3。找到EDIT控件的句柄
参考工具:
OLLDBG的插件 “窗口工具”,或者SPY++(我的用不了,哭哦~~~)。
步骤:
一, 在开发环境的菜单 工程=》添加模块
在标准模块中添加下面语句,API声明
在窗体里编写下面代码,通过打印的值我们就可以知道一些我们需要的值。
好了,我还要继续学习,这个可以实现后台的模拟键盘输入。可惜现在很多游戏用不了了,毕竟我们都知道了,游戏制作者也知道了,我们就要做点他们不知道的咯。
本人小站:www.bestbbs.5d6d.com
高手多多指教。
写不出多深的解释,干脆就不解释,我觉得任何一本书或者基础资料都会讲得比较好。
结构理清楚,代码排好,这应该才是最主要的。
今天就来最初步的,我也刚学到一点。慢慢来咯。(声明:其中的代码半抄半加)。
实验一:自动在记事本写一些字。
需要的知识:
1。怎么用VB调用WINDOWS API?
2。找到记事本的句柄
3。找到EDIT控件的句柄
参考工具:
OLLDBG的插件 “窗口工具”,或者SPY++(我的用不了,哭哦~~~)。
步骤:
一, 在开发环境的菜单 工程=》添加模块
在标准模块中添加下面语句,API声明
'API声明 Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long '变量声明 Public Const WM_KEYDOWN = &H100 Public Const WM_KEYUP = &H101 Public Const WM_CHAR = &H102 Public Const VK_A = &H41 ’这个函数来构造postmessage的lparam参数。 Function MakeKeyLparam(ByVal VirtualKey As Long, ByVal flag As Long) As Long Dim s As String Dim Firstbyte As String 'lparam参数的24-31位 If flag = WM_KEYDOWN Then '如果是按下键 Firstbyte = "00" Else Firstbyte = "C0" '如果是释放键 End If Dim Scancode As Long '获得键的扫描码 Scancode = MapVirtualKey(VirtualKey, 0) ‘可查MSDN,或者中文API手册 Dim Secondbyte As String 'lparam参数的16-23位,即虚拟键扫描码 Secondbyte = Right("00" & Hex(Scancode), 2) s = Firstbyte & Secondbyte & "0001" '0001为lparam参数的0-15位,即发送次数和其它扩展信息 MakeKeyLparam = Val("&H" & s) End Function
在窗体里编写下面代码,通过打印的值我们就可以知道一些我们需要的值。
Private Sub Command1_Click() Dim tWnd As Long tWnd = FindWindow(vbNullString, "key.txt - 记事本") Print Hex(tWnd) tWnd = FindWindowEx(tWnd, 0, "Edit", vbNullString) Print Hex(tWnd) Dim ret As Long ret = MakeKeyLparam(VK_A, WM_KEYDOWN) Print Hex(ret) PostMessage tWnd, WM_KEYDOWN, VK_A, ret 'PostMessage tWnd, WM_CHAR, Asc("A"), MakeKeyLparam(VK_A, WM_KEYDOWN) 'PostMessage tWnd, WM_KEYDOWN, VK_A, MakeKeyLparam(VK_A, WM_UP) End Sub
好了,我还要继续学习,这个可以实现后台的模拟键盘输入。可惜现在很多游戏用不了了,毕竟我们都知道了,游戏制作者也知道了,我们就要做点他们不知道的咯。
本人小站:www.bestbbs.5d6d.com
高手多多指教。
相关文章推荐
- 抽空学习VB,VC++之 VB游戏外挂学习制作(二)
- 2天前开始学习游戏外挂制作,小有收获,嘿嘿
- C#简单游戏外挂制作(以Warcraft Ⅲ实践)
- 网络游戏外挂制作之我所见(4)
- 扫雷游戏制作学习过程
- Unreal Engine4学习笔记--2制作别人可以加入的多人游戏
- 游戏开发学习笔记(三)游戏加载场景的制作
- Delphi深度之旅——网络游戏外挂制作
- C#简单游戏外挂制作(以Warcraft Ⅲ为例)
- 网络游戏外挂制作
- 网络游戏外挂制作之我所见(6)
- 网络游戏外挂制作
- vb做的类似打鼹鼠的游戏,简单,十分推荐初学vb 想做游戏的人学习
- 学习制作游戏概念图
- Unity3D--学习太空射击游戏制作(一)
- Jim's游戏外挂学习笔记4—查找怪数据数组的内存分布和地址
- 用Python制作游戏外挂(上)
- Unity学习笔记 [1st - 3rd] —— 小游戏制作完成
- 游戏外挂制作方法--按键精灵
- [知了堂学习笔记]_用JS制作《飞机大作战》游戏_第2讲(四大界面之间的跳转与玩家飞机的移动)