CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

快请如来佛祖~~~,关于鼠标问题!

楼主cpucontrol(可以包含)2004-12-02 02:07:53 在 VB / API 提问

本人做一个游戏外挂(自己用的)  
  问题1   :  
              SetCurSorPos   函数   或者用MOUSE_EVENT   对这个游戏的进行模拟鼠标的操作  
              但是尽管   参数是一样的但是每次点到的地方总是不同  
              例如:  
                        setcursorPos   x,y     '移到点击确定的位置    
              或者        
                        mouse_event   MOUSEEVENTF_ABSOLUTE   Or   MOUSEEVENTF_MOVE,   X,   Y,   0,   0    
              结果鼠标落的地方总是不同    
              而且结果都用GetCurSorPos   PP   进行检验;但是结果呢   PP.x,PP.y   都和上述位置相同  
   
  小弟感觉到已经黔驴技穷了,只好来到CSDN.net大呼一声:快请如来佛祖~~~。本人已经  
  搞不定了。 问题点数:50、回复次数:11Top

1 楼cpucontrol(可以包含)回复于 2004-12-02 02:12:09 得分 0

人都来了吗?Top

2 楼aohan(aohan)回复于 2004-12-02 08:06:45 得分 10

你怎么用的,该函数的声明是这样的  
   
   
  Declare   Function   SetCursorPos   Lib   "user32"   Alias   "SetCursorPos"   (ByVal   x   As   Long,   ByVal   y   As   Long)   As   Long    
  说明    
  设置指针的位置    
  返回值    
  Long,非零表示成功,零表示失败。会设置GetLastError    
  参数表    
  参数   类型及说明    
  x,y   鼠标指针在屏幕像素坐标系统中的X,Y位置    
   
   
  不知你想做什么Top

3 楼aohan(aohan)回复于 2004-12-02 08:10:11 得分 0

给个别人的东东  
   
  下面是子程序MoveCursorOn,它可让鼠标移动到指定控件上方。  
   
    下列代码请放在declarations段中:  
   
    Type    
  PoinTAPIx   As   Intege  
  ry   As   Integer  
  End   Type  
  Declare   Sub   SetCursorPos   Lib   "User"(Byval   x   As   Integer,Byval   y   As   Integer)  
  Declare   Sub   ClientToScreen   Lib   "User"(Byval   hwnd   As   Integer,IpPoint   As   PointAPI)  
  Declare   Function   GetParent   Lib   "User"(Byval   hwnd   As   Integer)As   Integer  
   
    然后建立一个新的子程序(ALT+N→N→键入子程序名MoveCursorOn),下面是子程序的代码:  
   
    Sub   MoveCursorOn(source   As   Control)  
  Dim   Pt   As   PoinTAPI  
  Dim   hparent   As   Intege  
  rp.x=(Source.Left+Source.Width/2)/Screen.Twipsperpixel)  
  p.y=(Source.Top+Source.Height/2)/Screen.Twipsperpixel)  
  hparent=GetParent(source.hwnd)  
  ClientToScreen   hparent   ptSetCursorPos   pt.x   pt.y  
  End   Sub  
   
    使用该子程序很容易,例如我们想把鼠标移动到按钮Command1上,就可使用语句Move   Cursor   On   Command1  
   
    您会看到鼠标箭头已经指着按钮Command1。  
   
    需要说明的是,千万不要滥用该子程序。让鼠标自己满屏乱飞,我们的用户会感到失去对应用程序的控制,这是违反我们的初衷的。  
   
    在有数个输入框的窗口中(这在数据库应用程序中是很典型的),当用户完成第一个输入框的输入后,总爱?   性的加一个回车,希望输入焦点落到下一个输入框中(DOS中大多数应用程序是如此),可往往事与愿违,这一回车却触发了拥有Default特性的按钮,结果不是关闭了当前窗口就是又蹦出另一窗口。用户睁大眼睛看着屏幕,“咦?!我到底做了什么?”这是Windows新用户经常遇到的事情。  
   
    解决它其实很容易,只需在输入框的KeyPress事件中加入如下代码:  
   
    IF   KeyASCII=13   ThenKeyASCII=0Sendkeys   "{TAB}"END   IF  
   
    这样,当用户在这个输入框中键入Enter时,就象键入TAB键时,焦点被移到下一控件上。但需注意,这种方法不适用于多行的TextBox,即TextBox的MultiLine特性设为True时,因为这时的回车键是起换行的作用。  
     
   
  Top

4 楼cpucontrol(可以包含)回复于 2004-12-02 18:38:59 得分 0

亲爱的各位高手们:  
  问题是这样的   在外挂中我们要把鼠标点到游戏的某处  
  例如:  
           
            Setcursorpos   90,90                             '移动到点击确定的地方      
            mouse_event   MOUSEEVENTF_LEFTDOWN,   0,   0,   0,   0     '鼠标左键按下  
   
  这句话如果用在点击QQ这样软件上是行得通的   因为每次都能通过   setcursorpos   90,90   准确的移动到按键上  
  但是用在点击游戏里就不行   因为鼠标会漂移   每次Setcursorpos   90,90   都可能移动到不同的位置上  
  尽管Setcursorpos   是绝对屏幕坐标但是点到游戏里就会漂移    
   
   
  Top

5 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2004-12-02 18:42:54 得分 5

那也有可能是游戏用到的分辨率和你的桌面分辨率不同Top

6 楼cpucontrol(可以包含)回复于 2004-12-02 18:47:16 得分 0

分辨率不同不是问题因为:S  
  etcursorpos   是绝对屏幕坐标   就算游戏分辨率不同,按钮总不会跑吧   ,事实上它是不会动的,每次出来按键就在原地。而且,分辨率不管与屏幕相不相同都会鼠标总会漂移Top

7 楼qyii(劳心劳力)回复于 2004-12-05 12:38:21 得分 35

别在setcursorpos上浪费心机了...你的程序点不中是,这是游戏对抗外桂的手段!Top

8 楼creazyfish(梳分头的鱼)回复于 2004-12-05 23:03:31 得分 0

过来听课了Top

9 楼j_x_y(稀里糊涂)回复于 2004-12-06 15:58:41 得分 0

可能是游戏反作弊功能Top

10 楼cpucontrol(可以包含)回复于 2004-12-07 04:02:42 得分 0

有没有对策啊同志们。它抗难道我们就放弃吗?Top

11 楼ylsn2004(碧海青天)回复于 2004-12-07 07:23:02 得分 0

用不言败  
  帮楼主顶  
  学习Top

相关问题

  • 请教鼠标的控制
  • 请教!!鼠标问题??
  • 100分请教一个鼠标响应的问题,请尽快答复,谢谢!
  • 请问怎么在CListCtrl的item上右击鼠标时在鼠标的位置弹出快捷菜单?在线等。。。
  • 请问:怎样通过两次按键(Enter)达到鼠标左键单击的效果?快快快!!!!!
  • 怎样封锁鼠标,高手请进!
  • 请教鼠标自动点击
  • 请教何为鼠标的Capture?
  • 请问,怎么控制鼠标?
  • 鼠标显示小问题,请指教

关键词

  • 鼠标
  • 代码
  • 屏幕
  • 坐标
  • 游戏
  • 用户
  • 移动
  • source
  • 子程序
  • setcursorpos

得分解答快速导航

  • 帖主:cpucontrol
  • aohan
  • WallesCai
  • qyii

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo