以下是用VB做外挂的一些知识文档格式.docx
- 文档编号:17148767
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:16
- 大小:27.88KB
以下是用VB做外挂的一些知识文档格式.docx
《以下是用VB做外挂的一些知识文档格式.docx》由会员分享,可在线阅读,更多相关《以下是用VB做外挂的一些知识文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
0)
Then
MsgBox("
你没有打开[计算器]程序!
点击“确定”退出。
点“取消”继续。
49,
错误!
1
Then
End
ElseIf
<
>
MsgBox
你已经打开了[计算器]程序.点“确定”退出本程序"
退出"
If
Sub
2.以下为模拟键盘事件.比如模拟"
r"
键.
在模块中定义
Public
keybd_event
bVk
Byte,
Scan
dwFlags
Long,
dwExtraInfo
Long)
在窗口中建立一timer.时间间隔随意.只要不是0就可以了
Call
keybd_event(82,
0,
模拟按下"
R"
键
3.以下为快捷键例子.比如按下"
ctrl+A"
就退出!
可以设置Form的KeyPreview属性为True,然后在Form_KeyDown事件中添加代码:
Form_KeyDown(KeyCode
Integer,
Shift
Integer)
KeyCode
Asc("
A"
And
vbCtrlMask
unload
me
如果ctrl+A键被按下就退出
例二:
在Form中加入
GetAsyncKeyState
vkey
Integer
MyHotKey(vKeyCode)
Boolean
MyHotKey
(GetAsyncKeyState(vKeyCode)
0)
Function
然后在循环中或Timer的Timer事件中检测:
MyHotKey(vbKeyA)
vbKeyControl
ctrl+A
关闭
其中vbkeyA是键盘〃A〃的常数,其他键可按F1查得。
End
取得窗口的句柄.类.名称等
建立三个label1/label2/lebel3/
名称分别为窗口句柄/类/标题/
建立一个text窗口
建立二个command按钮,一为开始抓取。
一为退出
声明:
Type
POINTAPI
x
y
Type
GetCursorPos
(lpPoint
POINTAPI)
SetWindowPos
hWndInsertAfter
cx
cy
wFlags
GetClassName
GetClassNameA"
nMaxCount
SendMessage
SendMessageA"
wMsg
wParam
lParam
Any)
WindowFromPoint
xPoint
yPoint
GetWindowLong
GetWindowLongA"
nIndex
GetWindowText
GetWindowTextA"
lpString
cch
Command1_Click()
Command1.Caption
开始抓取(&
S)"
Timer1.Enabled
True
停止抓取(&
Else
False
Command2_Click()
Me.hwnd,
-1,
&
H1
Or
H2
使窗体位于最顶端
On
Error
Resume
Next
tPoint
hWin
str
String
*
255
Abc
64000
Txt(64000)
Byte
获得当前鼠标位置
WindowFromPoint(tPoint.x,
tPoint.y)
获得窗口名柄
Me.hwnd
Command1.hwnd
Command2.hwnd
Text1.hwnd
Exit
确定窗口不在
Form1
中
hWin,
str,
255
获得窗口类
HD,
64000,
Txt(0)
获得窗口标题(也可使用
API
函数:
GetWindowText,但效果不佳)
Label1.Caption
窗口名柄:
hWin
Label2.Caption
窗口类:
str
Text1.Text
StrConv(Txt,
vbUnicode)
Option
Explicit
GetWindowThreadProcessId
hWnd
lpdwProcessId
OpenProcess
kernel32"
dwDesiredAccess
bInheritHandle
dwProcessId
WriteProcessMemory
hProcess
lpBaseAddress
Any,
lpBuffer
nSize
lpNumberOfBytesWritten
ReadProcessMemory
CloseHandle
hObject
Const
PROCESS_ALL_ACCESS
H1F0FFF
下面的函数用于查找游戏
FindGame()
PID
Gamehwnd
FindGame
蜘蛛"
查找游戏的句柄
(Gamehwnd
如果找不到(例如游戏未运行)就退出函数
没有找到蜘蛛游戏"
Gamehwnd,
取得进程ID
OpenProcess(PROCESS_ALL_ACCESS,
False,
PID)
以全部权力打开进程
(hProcess
打开进程失败
没有打开进程"
True
成功!
!
回到VB的窗口设计模式,在窗体上放上两个按钮和一个文本框
一个按钮为"
读取"
一个为"
写入"
分别用于读取和写入数据
把Text1的Text设为空白
retV%,
r&
=Dim
retV
r
ReadProcessMemory(hProcess,
H1011F20,
retV,
2,
这里重要,&
H1011F20为内存地址.
0
读取内存不成功!
Text1
retV
WriteProcessMemory(hProcess,
CInt(Val(Text1)),
参数与上面的基本相同
cInt(Val(Text1))是防止输入的过程有误,,例如,输入了字母,,如果不处理程序就会出错
写内存不成功!
OK"
一些控制鼠标的例子!
1.模拟鼠标击键过程
声明:
mouse_event
(
dx
dy
cButtons
Long
)
对变量的定义
MOUSEEVENTF_LEFTDOWN
H2
MOUSEEVENTF_LEFTUP
H4
MOUSEEVENTF_MIDDLEDOWN
H20
MOUSEEVENTF_MIDDLEUP
H40
MOUSEEVENTF_MOVE
H1
MOUSEEVENTF_ABSOLUTE
H8000
MOUSEEVENTF_RIGHTDOWN
H8
MOUSEEVENTF_RIGHTUP
H10
这里是
鼠标左键按下
和松开两个事件的组合即一次单击
MOUSEEVENTF_LEFTUP,
0
模拟鼠标右键单击事件
MOUSEEVENTF_RIGHTUP,
两次连续的鼠标左键单击事件
构成一次鼠标双击事件
2.模拟鼠标显示.隐藏
隐藏/显示鼠标.
ShowCursor
bShow
forml中函数如下
隐藏鼠标(需要事件击活,比如窗体事件等)
显示鼠标(需要事件击活,比如窗体事件等)
3.定位鼠标,使之不能移动
定位鼠标。
rect
sbleft
sbtop
sbright
sbbottom
ClipCursor
(lpRect
鼠标定位
定位鼠标
newrect
x&
Screen.TwipsPerPixelX
y&
Screen.TwipsPerPixelY
With
鼠标只能在500,500-500,500这个范围内移动,如果四个数一样也可以说锁定鼠标了.如果加在记时器里的话就移动不了啦.
.sbleft
.sbtop
.sbright
.sbbottom
With
newrect
如果鼠标被锁定,不能恢复怎么办?
不用担心.看如下代码.
使鼠标恢复(设定一个事件.才好击活这个代码.)
这样鼠标又可以在0,0-屏幕的最右角,屏幕的最右下脚移动了
Screen.Width
/
Screen.Height
4.移动鼠标到某某点
移动鼠标.
SetCursorPos
窗口函数如下:
鼠标移动到0,0点
5.鼠标坐标
鼠标坐标.
鼠标坐标:
在窗口中设立一记时器。
一显示框。
z
POINTAPI
z
x:
z.x
y:
z.y
设定一个显示点label1.
6.鼠标键数
鼠标键数.
GetSystemMetrics
鼠标键数
mousebtn
GetSystemMetrics(43)
你的鼠标是
键鼠标!
以上也可以使用其他方式模拟.
SetWindowPos函数:
使窗口停留在屏幕最顶层。
_
hWndinsertAfter
调用如:
hwnd,
HWND_TOPMOST,
+
窗口form1将保留在屏幕表面。
该函数功能是为窗口指定1个新的位置和状态。
参数:
hwnd:
欲定位的窗口。
hwndinsertAfter:
指定窗口的位置。
可能选用下述值之一:
HWND_BOTTOM
将窗口置于窗口列表底部
HWND_TOP
将窗口置于Z序列的顶部;
Z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序
HWND_TOPMOST(值-1)
将窗口置于列表顶部,并位于任何最顶部窗口的前面
HWND_NOTOPMOST(值-2)
将窗口置于列表顶部,并位于任何最顶部窗口的后面
窗口新的x坐标。
如hwnd是一个子窗口,则x用父窗口的客户区坐标表示
窗口新的y坐标。
如hwnd是一个子窗口,则y用父窗口的客户区坐标表示
cx:
指定新的窗口宽度
cy:
指定新的窗口高度
wFlags:
包含了游标的一个整数,可能为下述值或其组合。
SWP_DRAWFRAME
围绕窗口画一个框
SWP_HIDEWINDOW
隐藏窗口
SWP_NOACTIVATE
不激活窗口
SWP_NOMOVE
保持当前位置(x和y设定将被忽略)
SWP_NOREDRAW
窗口不自动重画
SWP_NOSIZE
保持当前大小(cx和cy会被忽略)
SWP_NOZORDER
保持窗口在列表的当前位置(hWndInsertAfter将被忽略)
SWP_SHOWWINDOW
显示窗口
SWP_FRAMECHANGED
强迫一条WM_NCCALCSIZE消息进入窗口,即使窗口的大小没有改变
======
移动无标题栏的窗口:
在标准模块中声明
ReleaseCapture
()
ReleaseCapture函数:
为当前程序释放鼠标捕获。
HTCAPTION
2
WM_NCLBUTTONDOWN
HA1
此消息指在窗口的非客户区域内按下左键
在FORM_mous
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 以下 VB 外挂 一些 知识