回 帖 发 新 帖 刷新版面

主题:菜鸟谈外挂编写(1)

刚开始学外挂编写有了点心得,想拿出来与大家分享。外挂想必玩过网游的人都知道,就是对游戏打的补丁,使其实现自动化操作,减少了人力。那么编写外挂应当从哪入手呢?API是windows系统的天然代码,自然从API函数来下手了。API可以在VB,VC等语言中嵌入,但是在VB中必须先声明APi,才能使用。(vc可以直接使用)有个问题,偶必须先指出来:API可以在模块头或表单头声明,但是在模块中声明的API在表单中引用必须是公有的,即需定义成Public类型。关于API如何宣告,每个API的意义,其中各个参数又是怎么个意思,这个在网上自己查吧,比如你想要知道findwindow,就在网上搜索findwindow关键字,就会出来它的声明,这个API的涵义,每个参数的具体意思。这个偶想你会吧。下面偶讲个自动喊话程序,是偶刚学上个月刚学API的时候,改写别人程序做出来的。好了,现在偶们边看程序,边学API。程序清单如下:
form1中:
Declare Function SetFocusAPI Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Declare Function FindWindow Lib "user32" 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
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Dim a(3) As String, c As Integer

Private Sub Command1_Click()
'Dim rttitle  As String * 256
Timer1.Enabled = True
Dim t As Long
b$ = List1.List(List1.ListIndex)
t = Val(b + "1000")
Timer1.Interval = t
a(1) = Text1.Text
a(2) = Text2.Text
a(3) = Text3.Text
'Text4.SetFocus
'SetFocusAPI (Me.Text4.hwnd)
hWnd2 = FindWindow("ThunderRTMain", vbNullString)
'ttitle = GetWindowText(hWnd2, rttitle, 255)
s = SetWindowPos(hWnd2, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE)
hWnd1 = FindWindowEx(hWnd2, 0, "ThunderTextBox", vbNullString)
SetFocusAPI (hWnd1)     '有个问题:对话板也应当是textbox控件,为什么它不获得焦点?而是喊话框获得焦点?
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub


Private Sub Form_Load()
c = 1
End Sub

Private Sub Timer1_Timer()
If c = 3 Then
        SendKeys a(c) + "{Enter}"
        c = 1
    Else
        SendKeys a(c) + "{Enter}"
        c = c + 1
    End If
End Sub

这个程序有点小小的问题,就是不是每次都能自动获得文本框的焦点。上个月编的程序,现在知道编写这类程序还有另外一种办法:用SendMessage发送消息的办法实现自动喊话。这里的API宣告,米Private关键字,宣告里没有写,是缺醒Private。偶些这些文章的目的,一个帮助自己复习所学知识,一个是帮助和偶一样自学的朋友。最后有一点忠告:1)、偶看到有不少有关16进制。2进制转化的问题,偶想这不是问题。windows系统下,附件目录下有个计算器,点查看-->科学型。用计算器算,这个快。2)、有的帖子研究VB对话框的移动,字体特效。偶感觉这些也米必要自己编写,从网上拽一个就可以了,自己编浪费时间。总之,自学要利用好工具,学会用别人的代码。上边代码中的SendKeys这个VB命令,发送一条信息给用户。自己上网查吧,一查就有。好了开始下一篇。

回复列表 (共1个回复)

沙发


找您帮我破解个外挂,能破解了费用好说,加QQ34848781

我来回复

您尚未登录,请登录后再回复。点此登录或注册