Project1

标题: 【api篇】控制鼠标操作 [打印本页]

作者: fux2    时间: 2010-12-29 14:52
标题: 【api篇】控制鼠标操作
撒花撒花,第一次成功地玩了API!!
喵,今天下载了VB控制鼠标的范例,然后反复琢磨和尝试AND咨询终于成功地移植到RGSS上咯~~

范例

Project1.rar (187.19 KB, 下载次数: 647)
脚本
  1. # 定位鼠标 by Fux2
  2. # 喵的第一次玩API居然都成功!撒花!
  3. class Cursor

  4.   M0USEEVENTF_LEFTDOWN  = 2      # 鼠标左键按下键值     
  5.   MOUSEEVENTF_LEFTUP    = 4      # 鼠标左键松开键值
  6.   
  7.   # 初始化
  8.   def initialize
  9.       # 调用user32.dll的GetCursorPos(得到鼠标坐标)函数
  10.       @getCursorPos = Win32API.new("user32","GetCursorPos",['P'],'V')
  11.       # 调用user32.dll的GetCursorPos(得到鼠标坐标)函数
  12.       @setCursorPos = Win32API.new("user32","SetCursorPos",['i']*2,'V')
  13.       # 调用user32.dll的mouse_event(鼠标事件,如点击)函数
  14.       @mouse_event = Win32API.new("user32","mouse_event",['L']*5,'V')
  15.   end
  16.   
  17.   # 获得鼠标坐标
  18.   def pos
  19.       lpPoint ="\0"*8
  20.       @getCursorPos.Call(lpPoint)
  21.       x,y = lpPoint.unpack("LL")
  22.       return [x,y]
  23.   end
  24.    
  25.   # 设定鼠标坐标
  26.   def pos=(xy)
  27.       @setCursorPos.Call(xy[0],xy[1])
  28.   end
  29.    
  30.   # 按下鼠标左键
  31.   def leftdown
  32.       @mouse_event.Call(M0USEEVENTF_LEFTDOWN,0,0,0,0)
  33.   end
  34.    
  35.   # 松开鼠标左键
  36.   def leftup
  37.        @mouse_event.Call(MOUSEEVENTF_LEFTUP,0,0,0,0)
  38.   end
  39.      
  40.   # 点击鼠标左键(按下提起)
  41.   def click
  42.       leftdown
  43.       leftup
  44.     end
  45.    
  46. end
复制代码

作者: 白鬼    时间: 2010-12-29 17:33
干嘛用的?求指导。
作者: david50407    时间: 2010-12-29 21:11
fux2借挪用一下...
完善...
作者: Tsar_NicholasII    时间: 2018-6-9 14:19
魔塔样板能用吗
作者: fux2    时间: 2018-6-9 21:44
Tsar_NicholasII 发表于 2018-6-9 14:19
魔塔样板能用吗

通用,但是主楼的脚本是基于屏幕的鼠标坐标而不是基于用户窗口内的(这东西就是初学时随便弄的)
还是找更成熟的脚本吧。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1