zoukankan      html  css  js  c++  java
  • Delphi 鼠标控制函数GetCursorPos、SetCursorPos

    GetCursorPos函数  获取鼠标的位置

    var
       P: TPoint;
    begin
       GetCursorPos(P); //获取鼠标位置
    end;

     

    SetCursorPos函数 设置鼠标的位置

    var
      x,y:integer; //
    begin
      x:=614; y:=282; //
      SetCursorPos(x,y); //
      Mouse_Event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //开始点击
      Mouse_Event(MOUSEEVENTF_LEFTUP,0,0,0,0); //弹出
    end;
    

    mouse_event,用于模拟鼠标动作。无返回值。参数1类型:整数型(Integer),鼠标动作标识;参数2类型:整数型(Integer),鼠标动作的水平坐标X;参数3类型:整数型(Integer),鼠标动作的垂直坐标Y;参数4类型:整数型(Integer),鼠标滚轮转动方向,若当前鼠标无滚轮动作,则取值为0;参数5在Windows SDK中的函数原型:
    VOID mouse_event(

        DWORD dwFlags, // flags specifying various motion/click variants 鼠标动作标识
        DWORD dx, // horizontal mouse position or position change 鼠标动作的水平坐标
        DWORD dy, // vertical mouse position or position change 鼠标动作垂直坐标
        DWORD dwData, // amount of wheel movement 当鼠标动作标识为MOUSEEVENTF_WHEEL时,此参数为鼠标滚轮转动方向,正值表示滚轮向前旋转,远离用户;负值表示滚轮向后旋转,向用户。
        DWORD dwExtraInfo  // 32 bits of application-defined information 设定一个32位值用于取扩展信息
       );

    鼠标动作标识:

      MOUSEEVENTF_MOVE            = $0001; { mouse move 鼠标移动}
      MOUSEEVENTF_LEFTDOWN        = $0002; { left button down 左键按下}
      MOUSEEVENTF_LEFTUP          = $0004; { left button up 左键弹起}
      MOUSEEVENTF_RIGHTDOWN       = $0008; { right button down 右键按下}
      MOUSEEVENTF_RIGHTUP         = $0010; { right button up 右键弹起}
      MOUSEEVENTF_MIDDLEDOWN      = $0020; { middle button down 中间按下}
      MOUSEEVENTF_MIDDLEUP        = $0040; { middle button up 中键弹起}
      MOUSEEVENTF_WHEEL           = $0800; { wheel button rolled 滚轮移动}
      MOUSEEVENTF_ABSOLUTE        = $8000; { absolute move 绝对移动}

     

    其他操作:

    var
      SDC: HDC;
      SColor: COLORREF;
    begin
      //鼠标移动到坐标X:20 Y:30初
      Mouse.CursorPos := Point(20, 30);
    
      //获取屏幕坐标X:20 Y:30初的颜色
      SDC := GetDC(0);
      SColor := GetPixel(SDC, 20, 30);
      ReleaseDC(0, SDC);
    
      //把取到的颜色画在屏幕上
      Canvas.Brush.Color := SColor;
      Canvas.FillRect(Rect(0, 0, 50, 50));
    

      

  • 相关阅读:
    vue-cli3中热更新失效,修改完代码之后需要手动刷新页面才能看到改变,解决办法
    数组中的数据项包含逗号则需在首尾拼接中括号[]来区分每一项,最后数组转为字符串,以及数据恢复
    组件之间的拖拽
    工作心得
    Vue重点知识
    vue-router路由
    利用注解和反射,将Bean枚举字段的值填入相应的字段中,并转化为fastjson返回前台
    db2 获取自增主键的方法
    mybatis注解@selectKey对于db2数据库的使用
    @InsertProvider 根据bean属性,自动生成插入sql语句
  • 原文地址:https://www.cnblogs.com/guorongtao/p/11386720.html
Copyright © 2011-2022 走看看