最近玩一款老遊戲, 裡面開箱子太麻煩了, 一直手動點, 朋友讓我試著寫乙個指令碼。 就搜了下, 挺好實現的, 就試著寫出來了。
修改下 也可以做些其他重複的事情。
其實就是乙個x鍵精靈的事情
我的系統是 win7 64, python34
用到了pyhooked,pypiwin32
pyhook我一直安不上,就用的pyhooked,win32,可以直接用pip install pypiwin32安裝。
from pyhooked import hook, keyboardevent, mouseevent
import win32gui, win32con, win32api
import time
from ctypes import *
import threading
def mouse_click(x=none, y=none):
if not x is none and not y is none:
mouse_move(x, y)
time.sleep(0.05)
win32api.mouse_event(win32con.mouseeventf_leftdown, 0, 0, 0, 0)
win32api.mouse_event(win32con.mouseeventf_leftup, 0, 0, 0, 0)
def mouse_dclick(x=none, y=none):
if not x is none and not y is none:
mouse_move(x, y)
time.sleep(0.05)
win32api.mouse_event(win32con.mouseeventf_leftdown, 0, 0, 0, 0)
win32api.mouse_event(win32con.mouseeventf_leftup, 0, 0, 0, 0)
win32api.mouse_event(win32con.mouseeventf_leftdown, 0, 0, 0, 0)
win32api.mouse_event(win32con.mouseeventf_leftup, 0, 0, 0, 0)
def mouse_move(x, y):
windll.user32.setcursorpos(x, y)
class mythread(threading.thread):
def __init__(self, timesleep=0.15):
super(mythread, self).__init__()
self.stopped = false
self.timesleep = timesleep
def run(self):
print('啟動')
x, y = win32gui.getcursorpos()
count = 0
while not self.stopped:
count += 1
mouse_click(x, y)
time.sleep(self.timesleep)
print('本次點選了%s次' % count)
def stop(self):
self.stopped = true
print('停止')
def isstopped(self):
return self.stopped
class myhook(hook):
def __init__(self):
hook.__init__(self)
self.open = false
self.thread = none
def handle_events(self, args):
if isinstance(args, keyboardevent) and not self.open and args.current_key == 'f2' and args.event_type == 'key down':
self.thread = mythread()
self.thread.start()
self.open = true
elif isinstance(args,keyboardevent) and self.open and args.current_key == 'f2' and args.event_type == 'key down':
self.open = false
self.thread.stop()
time.sleep(1)
if __name__ == '__main__':
print('f2啟動,再次f2關閉,啟動時請不要移動滑鼠')
參考 :
滑鼠劃過點選事件
mouseover事件於使用者把滑鼠從乙個元素移動到另外乙個元素上時觸發,mouseout事件於使用者把滑鼠移出bai乙個元素時觸發。下面為你詳細介紹下jquery中的滑鼠事件 1 click事件 click事件於使用者在元素敲擊滑鼠左鍵,並在相同元素上鬆開左鍵時觸發 p click functio...
獲取滑鼠點選事件
設定觸控模式 node settouchmode cc.touch mode one by one 單點觸控 或者 node settouchmode cc.touch mode all at once 多點觸控 是否啟用觸控 預設值 false node settouchenabled true ...
模擬滑鼠點選事件
今天上12306購票,可被氣得不輕,首先登陸人數受到了限制,其次買到票還有個排隊等待神馬的,先不說裡頭有沒有貓膩,電腦直接操作的,需要等待30分鐘以上嗎?神馬查詢語言要執行30分鐘才能得到個結果出來?贊同網上的言論 相比較而言,之前的搶票更能接受一些 上面是tackbar,用於隨時調整點選的時間間隔...