想做个游戏的自动练功外挂
不修改内存的东西
只想用程序实现 模拟游戏中的键盘操作
请问该如何去实现 谢谢!

解决方案 »

  1.   

    获得游戏的句柄?听不懂。
    打个比方,一个程序要去控制另一个程序,如果二者没有什么关系的话,肯定控制比较难实现。有个方法可以让二个程序产生比较亲密的关系,就是让这个程序去直接打开那个程序,还有什么好说的呢?用API函数CreateProcess去创建一个进程,这个新的进程代表我们的游戏,创建的时候可以得到各种权限(甚至还可调试),新进程开始运行时,我们已经拿到了它的ID和HANDLE,而且是作为父进程的姿态去拿的。
    嗯,这只是开始
      

  2.   

    下一步,其实不是下一步,而是上一步。
    先说说准备工作,你了解一个应用程序在windows下是如何开始和结束的吗?你了解应用程序的消息循环的机制吗?你知道怎样截获应用程序的函数吗?你知道。?如果回答都是否定,那么先做这些准备工作吧,先看看操作系统原理,再了解一下Win32运作原理,或许你还需要知道什么是Hook,怎样截获数据包,怎样欺骗服务器。
    之后,之后什么都明白了。
      

  3.   

    模拟键盘到是很简单!
    SendKeys 函数就可以做到,不过你要先得到游戏窗体的hwnd
    可以有findwindow.
    不过你可以用“按键精灵”
    不错,我用过!
    ======================QQYY_sj==========================
      

  4.   

    修改客户端,辅助
    findwindow ()获得窗口句柄
    2. 获取该窗口的进程id
    GetWindowThreadProcessId         '获取进程id
    3.获取该进程句柄
    OpenProcess()
    4.然后就可以读写了
    ReadProcessMemory () ''''''读取数据 
    WriteProcessMemory() ''''''修改数据
    5用SendMessage() 或 PostMessage() ' 模拟键盘或鼠标截获封包,
    apihook 别无他法
      

  5.   

    模拟键盘可以用kb_event函数。
      

  6.   

    简单问题复杂化!
    如果你是在游戏界面内,根本不用获得游戏的句柄。直接模仿按键精灵,对键盘鼠标操作。
    如果你不是在游戏界面内,只要Findwindow就可以获得句柄。然后Postmessage或者SendMassage即可,如此而已。
    我做过。
      

  7.   

    不知道在DirectInput下行不行,
    DI直接跟驱动程序通信,不经过Windows。
      

  8.   

    只是模拟键盘吗?太简单了获得窗口句柄(引号内是游戏的窗口标题,自己替换一下)
    phWnd = FindWindow(vbNullString, "仙境RO")句柄已经搞定了,还等什么?
    向这个窗口发送按键消息吧~PostMessage phWnd, WM_KEYDOWN, VK_F1, 0
    模拟F1按下
    PostMessage phWnd, WM_KEYUP, VK_F1, 0
    模拟F1松开完成了~强烈要求给分~~~~~
      

  9.   

    售:仙境外挂原码(Delphi编写包含控件)包含:服务器端,客户端,更新程序,充值卡程序,后台管理程序,脚本编辑器程序。
    包含开发工具。
    外挂原码共171MB。本程序只能作为学习用途,不得用于商业。联系:QQ7092359
      

  10.   

    售:仙境外挂原码(Delphi编写包含控件)包含:服务器端,客户端,更新程序,充值卡程序,后台管理程序,脚本编辑器程序。
    包含开发工具。
    外挂原码共171MB。本程序只能作为学习用途,不得用于商业。联系:QQ7092359
    有限发行10套
      

  11.   

    也不一定就得用发送封包的方法
    如果只是简单的练功的话,那按键精灵那种方式就够了
    正常使用的不过是两个API的函数这个API是鼠标动做模拟
    Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)这个是键盘动做模拟
    Public Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)一般简单的练功,只要你对游戏本身的操作熟悉,就没有问题的
    按键精灵我想也是用的这两个API函数你可以再用一些其它的API来得到一些消息,就看你要做什么样的了比如,取得游戏窗口的句柄(楼上的说过这个),之后对所得到的消息进得处理
    再配合键盘及鼠标的模拟,可以做到一些简单的功能的
      

  12.   

    对于这两个函数你可以看看WIN32API的帮助,那里说的很细