CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

关于模拟鼠标移动的问题(我这里只会上下移动,不会左右移动)

楼主global9wei(shadow)2006-04-29 17:41:00 在 .NET技术 / C# 提问

using   System;  
  using   System.Runtime.InteropServices;  
   
  namespace   bb  
  {  
  class   bb  
  {  
   
   
   
      [DllImport("user32.dll")]  
      public   static   extern   void   mouse_event(long   dwFlags,long   dx,long   dy   ,long   dwData   ,long   dwExtralnfo);  
      //public   const   long   MOUSEEVENTF_LEFTDOWN   =   0x2;  
    //   public   const   long   MOUSEEVENTF_LEFTUP   =   0x4;  
    ///   public   const   long   MOUSEEVENTF_MIDDLEDOWN   =   0x20;  
    //   public   const   long   MOUSEEVENTF_MIDDLEUP   =   0x40;  
      public   const   long   MOUSEEVENTF_MOVE   =   0x1;  
      public   const   long   MOUSEEVENTF_ABSOLUTE   =   0x8000;  
    //   public   const   long   MOUSEEVENTF_RIGHTDOWN   =   0x8;  
    //   public   const   long   MOUSEEVENTF_RIGHTUP   =   0x10;  
      //int   Length=300;  
      //IntPtr   THandle=APIs.GetLocalWindow();  
      //SetCursorPos(10,10);  
      public   static   void   Main()  
      {  
              mouse_event(MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE,30015,10682,0,0);              
      }  
  }  
  }  
  大家帮我看看,怎么才能左右一起移动 问题点数:20、回复次数:10Top

1 楼cancerser(都是混饭吃,记得要结帖)回复于 2006-04-29 17:44:04 得分 0

MOUSEEVENTF_LEFTUP|MOUSEEVENTF_LEFTDOWN   ?顶Top

2 楼global9wei(shadow)回复于 2006-04-29 17:58:49 得分 0

不行哦,你先自己测试一下Top

3 楼henry3695(henry(老师说学好正则可以赚美元的))回复于 2006-04-30 07:50:48 得分 0

顶  
   
  怎么样模拟鼠标点击事件呢Top

4 楼huangguangdou(人生最遗憾的,莫过于,轻易的放弃了不该放弃的)回复于 2006-04-30 08:05:11 得分 0

我连上下移动都不会  
   
  哈哈  
   
  up   ....Top

5 楼tttick(秉承一贯懒散的生活方式与严谨的工作态度¢)CodinG)回复于 2006-04-30 08:05:40 得分 10

[System.Runtime.InteropServices.DllImport("user32")]  
          private   static   extern   int   mouse_event(int   dwFlags,int   dx,int   dy,int   cButtons,int   dwExtraInfo);  
  const   int   MOUSEEVENTF_MOVE=0x0001;  
  const   int   MOUSEEVENTF_LEFTDOWN=0X0002;  
  const   int   MOUSEEVENTF_LEFTUP=0X0004;  
  const   int   MOUSEEVENTF_RIGHTDOWN=0X0008;  
  const   int   MOUSEEVENTF_RIGHTUP=0X0010;  
  const   int   MOUSEEVENTF_MIDDLEDOWN=0X0020;  
  const   int   MOUSEEVENTF_MIDDLEUP=0X0040;  
  const   int   MOUSEEVENTF_ABSOLUTE=0X8000;  
   
   
   
   
   
  mouse_event(MOUSEEVENTF_MOVE,0,20,0,0);  
  ///向下移动...参数你可以自己查API  
   
  mouse_event(MOUSEEVENTF_MOVE,20,0,0,0);  
  //向右移动...  
   
   
  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);    
  //两个连用...就是鼠标的左键点击一次了...Top

6 楼Knight94(愚翁)回复于 2006-04-30 08:16:04 得分 10

没问题,注意dx与dy的取值,即(0,0)->(65535,65535),还有你的函数声明错了,例如:  
  -----Dll   Declare-------  
  [DllImport("user32.dll")]  
  public   static   extern   void   mouse_event(int   dwFlags,  
  int   dx,   int   dy   ,int   dwData   ,int   dwExtralnfo);  
  public   const   int   MOUSEEVENTF_MOVE   =   0x1;  
  public   const   int   MOUSEEVENTF_ABSOLUTE   =   0x8000;  
   
  ----Calling---------  
  mouse_event(   MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE,  
  30015,10682,  
  0,  
  0);  
   
  System.Threading.Thread.Sleep(   100   );  
  mouse_event(   MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE,  
  12000,  
  10000,  
  0,  
  0);  
  Top

7 楼global9wei(shadow)回复于 2006-04-30 09:14:02 得分 0

我自己已经找到了,你们都正解,呵呵Top

8 楼global9wei(shadow)回复于 2006-04-30 09:16:16 得分 0

晕,我一给分怎么说我输入的不是数字Top

9 楼global9wei(shadow)回复于 2006-04-30 10:24:57 得分 0

怎么给分哦Top

10 楼my_infinity()回复于 2007-01-06 21:30:07 得分 0

to:   知道答案的各位  
   
  参数你可以自己查API,要怎么查找呢?Top

相关问题

关键词

得分解答快速导航

  • 帖主:global9wei
  • tttick
  • Knight94

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

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