本文整理汇总了Python中pymouse.PyMouse.drag方法的典型用法代码示例。如果您正苦于以下问题:Python PyMouse.drag方法的具体用法?Python PyMouse.drag怎么用?Python PyMouse.drag使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pymouse.PyMouse
的用法示例。
在下文中一共展示了PyMouse.drag方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
class Player:
def __init__(self):
self.mouse = PyMouse()
def click(self, pos):
self.mouse.click(*pos)
def shoot(self, target, power, table_offset, cue_ball):
adj_target = np.add(target, table_offset)
self.mouse.press(*adj_target)
adj_cue = np.add(cue_ball.get_pos(), table_offset)
self.mouse.drag(*adj_cue)
self.mouse.release(*adj_cue)
示例2: drag
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
def drag(p1, p2, t = 0.05):
m = PyMouse()
m.press(p1.x, p1.y, 1)
x = p1.x
y = p1.y
step = 5
while distance(Point(x, y), p2) >= 1 :
x += (p2.x - x)/step
y += (p2.y - y)/step
step -= 1
m.drag(x, y)
# time.sleep(0.01)
m.release(p2.x, p2.y, 1)
time.sleep(t)
示例3: Bot
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
class Bot():
def __init__(self):
self.mouse = PyMouse()
self.keyboard = PyKeyboard()
def Delay(self, n):
time.sleep(n)
""" ====== Mouse Macro ====== """
def Left_click(self, x, y, n = 1, dl = 0):
"""在屏幕某点左键点击若干次
"""
self.Delay(dl)
self.mouse.click(x, y, 1, n)
def Right_click(self, x, y, n = 1, dl = 0):
"""在屏幕某点右键点击若干次
"""
self.Delay(dl)
self.mouse.click(x, y, 2, n)
def Double_click(self, x, y, dl = 0):
"""在屏幕的某点双击
"""
self.Delay(dl)
self.mouse.click(x, y, 1, n = 2)
def Scroll_up(self, n, dl = 0):
"""鼠标滚轮向上n次
"""
self.Delay(dl)
self.mouse.scroll(vertical = n)
def Scroll_down(self, n, dl = 0):
"""鼠标滚轮向下n次
"""
self.Delay(dl)
self.mouse.scroll(vertical = -n)
def Move_to(self, x, y, dl = 0):
"""鼠标移动到x, y的坐标处
"""
self.Delay(dl)
self.mouse.move(x, y)
def Drag_and_release(self, start, end, dl = 0):
"""从start的坐标处鼠标左键单击拖曳到end的坐标处
start, end是tuple. 格式是(x, y)
"""
self.Delay(dl)
self.mouse.press(start[0], start[1], 1)
self.mouse.drag(end[0], end[1])
self.Delay(0.1)
self.mouse.release(end[0], end[1], 1)
def Screen_size(self):
width, height = self.mouse.screen_size()
return width, height
def WhereXY(self):
x_axis, y_axis = self.mouse.position()
return x_axis, y_axis
""" ====== Keyboard Macro ====== """
"""COMBINATION组合键"""
"""Ctrl系列"""
def Ctrl_c(self, dl = 0):
"""Ctrl + c 复制
"""
self.Delay(dl)
self.keyboard.press_key(self.keyboard.control_key)
self.keyboard.tap_key("c")
self.keyboard.release_key(self.keyboard.control_key)
def Ctrl_x(self, dl = 0):
"""Ctrl + x 剪切
"""
self.Delay(dl)
self.keyboard.press_key(self.keyboard.control_key)
self.keyboard.tap_key("x")
self.keyboard.release_key(self.keyboard.control_key)
def Ctrl_v(self, dl = 0):
"""Ctrl + v 粘贴
"""
self.Delay(dl)
self.keyboard.press_key(self.keyboard.control_key)
self.keyboard.tap_key("v")
self.keyboard.release_key(self.keyboard.control_key)
def Ctrl_z(self, dl = 0):
"""Ctrl + z 撤销上一次操作
"""
self.Delay(dl)
self.keyboard.press_key(self.keyboard.control_key)
self.keyboard.tap_key("z")
self.keyboard.release_key(self.keyboard.control_key)
def Ctrl_y(self, dl = 0):
#.........这里部分代码省略.........
示例4: run
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
def run(self):
global running
last_time = datetime.datetime.now()
m=PyMouse()
measure = str(datetime.datetime.now() - last_time).split(":", 1)[1].split(":", 1)[1]
data = None
X,Y,CX,CY,LX,LY,dirX,dirY=0,0,0,0,0,0,0,0
CXX,CYY,LXX,LYY=0,0,0,0
max_steps=120
click_lock=0
accelX=0
accelY=0
XX = range(0)
YY = range(0)
screen_dim = m.screen_size()
print "Screen Xdim = " + str(screen_dim[0])
print "Screen Ydim = " + str(screen_dim[1])
while running:
if not reciever.empty():
data=reciever.get_nowait()
print "data = " + str(data)
reciever.task_done()
current_pos = m.position()
last_time = datetime.datetime.now()
if (len(XX)>2 or len(YY)>2) and float(measure)>0.2:
print "timout..."
print "measure = " + str(measure)
print "len XX = " + str(len(XX))
if len(XX)>0:XX.pop(0)
if len(YY)>0:YY.pop(0)
if re.match("ROW", str(data)) is not None:
CY = int(data.split("COL",1)[0].split("ROW",1)[1])
CX = int(data.split("ROW",1)[1].split("COL",1)[1])
data=None
if CY is not None and CX is not None and float(measure)<0.125:
print "\n"
if (CX-LX)>0 and CX!=LX:XX.append(1)
elif (CX-LX)<0 and CX!=LX:XX.append(-1)
elif CX!=LX:XX.append(0)
if (CY-LY)>0 and CY!=LY:YY.append(1)
elif (CY-LY)<0 and CY!=LY:YY.append(-1)
elif CY!=LY:YY.append(0)
dirX=sum(XX)+(self.divider(1,LX))
dirY=sum(YY)+(self.divider(1,LY))
if float(measure)<0.025:accelX,accelY=4,3
elif float(measure)>0.025 and float(measure)<0.05:accelX,accelY=3,2
elif float(measure)>0.05 and float(measure)<0.075:accelX,accelY=2,1.25
elif float(measure)>0.075 and float(measure)<0.1:accelX,accelX=1,0.75
else:accelX,accelY=0.75,0.5
targetX=current_pos[0]+(dirX*accelX)
targetY=current_pos[1]+(dirY*accelY)
if (current_pos[0]>0 and current_pos[0]<screen_dim[0]) and (current_pos[1]>0 and current_pos[1]<screen_dim[1]):
if (targetX<screen_dim[0]) and (targetX>0) and (targetY<screen_dim[1]) and (targetY>0):
if click_lock==1:m.drag((targetX),targetY)
else:m.move((targetX),targetY)
elif (current_pos[0]<=0) or (current_pos[1]<=0):
if dirX>0:
m.move((1+dirX),current_pos[1])
elif dirY>0:
m.move(current_pos[0],(dirY+1))
elif current_pos[0]>=screen_dim[0]:
if dirX<0:
m.move(((screen_dim[0]-2)+dirX),(current_pos[1]-2))
if len(XX)>=5 or len(YY)>=5:
if len(XX)>0:XX.pop(0)
if len(YY)>0:YY.pop(0)
last_time = datetime.datetime.now()
LX,LY=CX,CY
CX,CY=None,None
if re.match("LCLK", str(data)) is not None:
data=None
click_lock=0
print "LEFT CLICK" + str(current_pos)
m.click(current_pos[0],current_pos[1],1)
#m.release(current_pos[0],current_pos[0])
#m.release(current_pos[0],current_pos[0])
#m.move(current_pos[0],current_pos[1])
print "LEFT CLICK" + str(current_pos)
if re.match("LPRS", str(data)) is not None:
data=None
click_lock=1
#.........这里部分代码省略.........
示例5:
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
# click value
click=data[1] # if it is 7 mouse down else if it is 4 it is mouse up
# get the coordinates
xcor,ycor,dec_x_binary,dec_y_binary=data[4],data[6],data[3],data[5]
screen_xcor,screen_ycor=transform_board_screen(xcor,ycor,dec_x_binary,dec_y_binary)
#print "%d, %d"%(xcor_dec,ycor_dec)
#print "%d, %d"%(screen_xcor,screen_ycor)
# check if it is valid event
if xcor!=0 and ycor!=0 and debug==False:
# move mouse
if click==7:
# mean mouse down event
if mouse_down_event:
# drag event
# draw a line from previous coordinates
m.drag(screen_xcor, screen_ycor)
else:
# first button press event
m.click(screen_xcor, screen_ycor, 1)
mouse_down_event=True
else:
# mouse up event
# set event type in mouse_down_event
# first button press and drag
mouse_down_event=False
except usb.core.USBError as e:
data = None
if e.args == ('Operation timed out',):
continue
finally:
# release the device
示例6: Bot
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
#.........这里部分代码省略.........
def scroll_right(self, n, pre_dl=None, post_dl=None):
"""Scroll right ``n`` times.
**中文文档**
鼠标滚轮向右滚动n次(如果可能的话)。
"""
self.delay(pre_dl)
self.m.scroll(horizontal=n)
self.delay(post_dl)
def scroll_left(self, n, pre_dl=None, post_dl=None):
"""Scroll left ``n`` times.
**中文文档**
鼠标滚轮向左滚动n次(如果可能的话)。
"""
self.delay(pre_dl)
self.m.scroll(horizontal=-n)
self.delay(post_dl)
def move_to(self, x, y, pre_dl=None, post_dl=None):
"""Move mouse to (x, y)
**中文文档**
移动鼠标到 (x, y) 的坐标处。
"""
self.delay(pre_dl)
self.m.move(x, y)
self.delay(post_dl)
def drag_and_release(self, start_x, start_y, end_x, end_y, pre_dl=None, post_dl=None):
"""Drag something from (start_x, start_y) to (end_x, endy)
**中文文档**
从start的坐标处鼠标左键单击拖曳到end的坐标处
start, end是tuple. 格式是(x, y)
"""
self.delay(pre_dl)
self.m.press(start_x, start_y, 1)
self.m.drag(end_x, end_y)
self.m.release(end_x, end_y, 1)
self.delay(post_dl)
#--- Keyboard Single Key ---
def tap_key(self, key_name, n=1, interval=0, pre_dl=None, post_dl=None):
"""Tap a key on keyboard for ``n`` times, with ``interval`` seconds of
interval. Key is declared by it's name
Example::
bot.tap_key("a")
bot.tap_key(1)
bot.tap_key("up")
bot.tap_key("space")
bot.tap_key("enter")
bot.tap_key("tab")
**中文文档**
以 ``interval`` 中定义的频率按下某个按键 ``n`` 次。接受按键名作为输入。
"""
key = self._parse_key(key_name)
示例7: mk
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
class mk(object):
def getMousePosition(self):
mouseposition = self.mouse.position()
return np.array([mouseposition[0], mouseposition[1]])
def __init__(self):
self.mouse = PyMouse()
self.keyboard = PyKeyboard()
self.multikey_mapping = {"cmdd": (["cmd"], "d"), "shiftd": (["shift"], "d")}
self.boundary = [
0,
0,
AppKit.NSScreen.mainScreen().frame().origin.x + AppKit.NSScreen.mainScreen().frame().size.width,
AppKit.NSScreen.mainScreen().frame().origin.y + AppKit.NSScreen.mainScreen().frame().size.height,
]
def nKeysSameTime(self, list_of_mod, tap_key):
for key in list_of_mod:
self.keyboard.press_key(key)
sleep(0.1)
self.keyboard.tap_key(tap_key)
for key in list_of_mod:
self.keyboard.release_key(key)
def decompMultiKey(self, key):
(mod, tap_key) = self.multikey_mapping[key]
return (mod, tap_key)
def nKeysSequential(self, list_of_keys):
for key in list_of_keys:
try:
self.keyboard.tap_key(key)
except RuntimeError:
try:
decomp = self.decompMultiKey(key)
except:
raise RuntimeError("Key %s not implemented" % key)
self.nKeysSameTime(decomp[0], decomp[1])
sleep(0.15)
def mouseEvent(self, thetype, pos_vec):
posx = pos_vec[0]
posy = pos_vec[1]
theEvent = CGEventCreateMouseEvent(None, thetype, (posx, posy), kCGMouseButtonLeft)
CGEventPost(kCGHIDEventTap, theEvent)
def mouseMove(self, pos_vec):
if pos_vec[0] < self.boundary[0]:
posx = self.boundary[0]
elif pos_vec[0] > self.boundary[2]:
posx = self.boundary[2]
else:
posx = pos_vec[0]
if pos_vec[1] < self.boundary[1]:
posy = self.boundary[1]
elif pos_vec[1] > self.boundary[3]:
posy = self.boundary[3]
else:
posy = pos_vec[1]
self.mouse.move(posx, posy)
# self.mouseEvent(kCGEventMouseMoved, posx, posy)
def mouseClick(self, pos_vec):
posx = pos_vec[0]
posy = pos_vec[1]
self.mouse.press(posx, posy, button=1)
self.mouse.release(posx, posy, button=1)
# self.mouseEvent(kCGEventLeftMouseDown, posx, posy)
# self.mouseEvent(kCGEventLeftMouseUp, posx, posy)
def mouseDrag(self, posx, posy):
self.mouse.press(self.mouse.position()[0], self.mouse.position()[1])
self.mouse.drag(posx, posy)
self.mouse.release(posx, posy)
示例8: run
# 需要导入模块: from pymouse import PyMouse [as 别名]
# 或者: from pymouse.PyMouse import drag [as 别名]
def run(self):
global running
last_time = datetime.datetime.now()
m=PyMouse()
self.settings()
measure = str(datetime.datetime.now() - last_time).split(":", 1)[1].split(":", 1)[1]
data = None
X,Y,CX,CY,LX,LY,dirX,dirY=0,0,0,0,0,0,0,0
CXX,CYY,LXX,LYY=0,0,0,0
max_steps=120
click_lock=0
accelX=0
accelY=0
print "Started " + str(self)
XX = range(0)
YY = range(0)
screen_dim = m.screen_size()
print "Screen Xdim = " + str(screen_dim[0])
print "Screen Ydim = " + str(screen_dim[1])
current_pos = m.position()
while running:
if not reciever.empty():
data=str(reciever.get_nowait()).split("\n",1)[0]
#print "Data received: " + str(data)
reciever.task_done()
current_pos = m.position()
last_time = datetime.datetime.now()
if (len(XX)>2 or len(YY)>2) and float(measure)>0.2:
if len(XX)>0:XX.pop(0)
if len(YY)>0:YY.pop(0)
if re.match(".*ROW", str(data)) is not None:
CY = int(data.split(" TPRow",1)[0].split("ROW",1)[1])
CX = LX
#print "Row data: " + str(CY)
#print "Col data: " + str(CX)
data=None
if re.match(".*COL", str(data)) is not None:
CX = int(data.split(" TPCol",1)[0].split("COL",1)[1])
CY = LY
#print "Row data: " + str(CY)
#print "Col data: " + str(CX)
data=None
if (CY is not None and CX is not None) and float(measure)<0.125:
if (CX-LX)>0 and CX!=LX:XX.append(1)
elif (CX-LX)<0 and CX!=LX:XX.append(-1)
elif CX!=LX:XX.append(0)
if (CY-LY)>0 and CY!=LY:YY.append(1)
elif (CY-LY)<0 and CY!=LY:YY.append(-1)
elif CY!=LY:YY.append(0)
dirX=sum(XX)+(self.divider(1,LX))
dirY=sum(YY)+(self.divider(1,LY))
if float(measure)<0.025 and float(measure)>0.0175:
#print str(measure)
accelX,accelY=6,5
elif float(measure)>0.025 and float(measure)<0.05:accelX,accelY=4,3
elif float(measure)>0.05 and float(measure)<0.075:accelX,accelY=3,2
elif float(measure)>0.075 and float(measure)<0.1:accelX,accelX=2,1
else:accelX,accelY=1,1
if int(dirX)==0:
accelX=0
if int(dirY)==0:
accelY=0
targetX=current_pos[0]+(dirX*accelX)
targetY=current_pos[1]+(dirY*accelY)
if (current_pos[0]>0 and current_pos[0]<screen_dim[0]) and (current_pos[1]>0 and current_pos[1]<screen_dim[1]):
if (targetX<screen_dim[0]) and (targetX>0) and (targetY<screen_dim[1]) and (targetY>0):
if click_lock==1:m.drag((targetX),targetY)
else:m.move((targetX),targetY)
elif (current_pos[0]<=0) or (current_pos[1]<=0):
if dirX>0:
m.move((1+dirX),current_pos[1])
elif dirY>0:
m.move(current_pos[0],(dirY+1))
elif current_pos[0]>=screen_dim[0]:
if dirX<0:
m.move(((screen_dim[0]-2)+dirX),(current_pos[1]-2))
if len(XX)>=5 or len(YY)>=5:
if len(XX)>0:XX.pop(0)
if len(YY)>0:YY.pop(0)
last_time = datetime.datetime.now()
LX,LY=CX,CY
CX,CY=None,None
if re.match(".*LCLK.*LCLK", str(data)) is not None and click_lock is not 1:
#.........这里部分代码省略.........