def play_mouse_events(events):
    iterations = get_number_of_iterations()
    for i in range(iterations):
        if stop:
            break
        mouse.play(events, speed_factor=1.0)
    return events
Exemple #2
0
    def play(self, speed_factor=1.0) -> None:
        if not self.data:
            raise RuntimeError("`data` cannot be None")
        if "events" not in self.data:
            raise RuntimeError("`data['events']` cannot be None")

        mouse.play(self.data["events"], speed_factor=speed_factor)
        mouse.unhook_all()
def zaWarudo():
    #x1, y1 = win32api.GetCursorPos()
    recorded = []
    mouse.hook(recorded.append)
    time.sleep(3)
    mouse.unhook(recorded.append)
    #print(recorded)
    print("not funny, didnt happen")
    mouse.play(reverseMouseEvent(recorded))
Exemple #4
0
def start_server(ip, port):
	HOST = ip
	PORT = int(port)

	currx = 0
	curry = 0

	#

	def set_display_properties():
		root = tkinter.Tk()
		root.attributes('-alpha', 0)
		root.attributes('-fullscreen', True)
		return (root.winfo_screenwidth(), root.winfo_screenheight())

	screen_dimensions = set_display_properties()

	#

	with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as main_socket:
		main_socket.bind((HOST, PORT))
		main_socket.listen()
		conn, addr = main_socket.accept()
		with conn:
			print('Connected by : ', addr)

			server_screen = conn.recv(1024).decode('utf-8')
			server_width = int(server_screen.split(':')[0])
			server_height = int(server_screen.split(':')[1])

			while True:
				data = conn.recv(1024)
				if not data: break

				point = data.decode('utf-8')

				try:
					if point.split(')')[1] == '':
						if point[:11] == 'ButtonEvent':
							button_event = eval('mouse.' + point)
							if button_event.event_type == 'up': m.release(button_event.button)
							elif button_event.event_type == 'down': m.press(button_event.button)

						else:
							mouse.play([eval('mouse.' + point)])

				except:
					if point[:2] == 'kb':
						if point[3] == 'a':
							if point[2] == 'r': k.release(point[5:])
							if point[2] == 'r': k.press(point[5:])
						elif point[3] == 's':
							if point[2] == 'r': k.release(eval(point[5:]))
							if point[2] == 'r': k.press(eval(point[5:]))
Exemple #5
0
def receiver(e):
    if e.event_type == 0:
        event = mouse._mouse_event.MoveEvent._make([e.x, e.y, e.time])
    elif e.event_type == 1:
        event = mouse._mouse_event.ButtonEvent._make([e.btype, e.button, e.time])
    elif e.event_type == 2:
        event = mouse._mouse_event.WheelEvent._make([e.delta, e.time])
    l.put(event)
    event_to_play = [l.get()]
    if not e.on_hold:
        mouse.play(event_to_play)
Exemple #6
0
def main_loop():
    with open("recordings/auto_leaf_keeper.pkl", 'rb') as input:
        record = pickle.load(input)
    print('press enter to stop auto leaf keaper')
    click_listener_thread = threading.Thread(target=keyboard.wait, args=('enter',))

    click_listener_thread.start()

    while click_listener_thread.is_alive():
        mouse.play(record, speed_factor=10)

    return 1
Exemple #7
0
def run():
    channel = grpc.insecure_channel('localhost:54321')
    stub = mouse_pb2_grpc.MouseSenderStub(channel)

    while True:
        for e in stub.mouseStream(mouse_pb2.EventString(mouseevent=b)):
            print('*********')
            k = eval(e.mouseevent)
            lista = []
            lista.append(k)
            print(lista)
            # l.put(k)
            print('**********************************************')
            mouse.play(lista)
def click_template_image_then_playback_events(template_image='btn.png',
                                              iterations=1):

    click_template_image(template_image)
    events = record_mouse_events()
    iterations = get_number_of_iterations()

    for i in range(iterations):
        if stop:
            print('stop signal received, ending program')
            break

        print('{} Playing back: template click then events'.format(i))
        click_template_image(template_image)
        mouse.play(events, speed_factor=4.0)
        sleep(0.5)
Exemple #9
0
def replay():
    # pyautogui.moveTo(width/2,height/2) #move mouse to middle of screen
    time.sleep(.2)
    base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    keyboard.start_recording()
    keyboard.stop_recording()

    mouse_events = pickle.load(open(base_dir +r'/events/mouse.p','rb'))
    keyboard_events = pickle.load(open(base_dir +r'/events/keyboard.p','rb'))

    print(keyboard_events)
    #Keyboard threadings:
    k_thread = threading.Thread(target = lambda :keyboard.play(keyboard_events[:-1]))
    k_thread.start()

    #Mouse threadings:

    m_thread = threading.Thread(target = lambda :mouse.play(mouse_events))
    m_thread.start()

    #waiting for both threadings to be completed

    m_thread.join()
    k_thread.join()
Exemple #10
0
def main_loop():
    with open("recordings/auto_leaf_keaper.pkl", 'rb') as input:
        record = pickle.load(input)
    click_listener_thread = threading.Thread(target=keyboard.wait,
                                             args=('enter', ))
    print('press enter to stop cheese grind')
    click_listener_thread.start()
    time.sleep(3)
    while click_listener_thread.is_alive():
        #collect
        mouse.play(record, speed_factor=1)
        #wait 3 min
        _win_set_time(60 * 3)

        #buy new
        mouse.play(record, speed_factor=1)
        #wait 2 hours
        _win_set_time(2 * 3600)

    return 1
Exemple #11
0
def play_shortcut(name):
    selectedShortcut = 0
    totalShortcuts = 0
    with open("name_shortcuts.txt", 'r') as nfile:
        for line in nfile.readlines():
            if name in line:
                selectedShortcut = totalShortcuts
            totalShortcuts += 1

    kfile = open("keyboard_shortcuts.txt", 'rb+')
    for i in range(selectedShortcut + 1):
        keyboard_events = load(kfile)
    kfile.close()

    mfile = open("mouse_shortcuts.txt", 'rb+')
    for j in range(selectedShortcut + 1):
        mouse_events = load(mfile)
    mfile.close()

    #just to see what inputs will be done can be removed
    #--------------------------------------------------
    print(str(mouse_events))
    print(str(keyboard_events))
    #--------------------------------------------------

    #Uses threading to play both mouse and keyboard movements at the same time
    m_thread = threading.Thread(
        target=lambda: mouse.play(mouse_events, speed_factor=1))
    k_thread = threading.Thread(
        target=lambda: keyboard.play(keyboard_events, speed_factor=1))
    m_thread.start()
    #This one line of code fixed the keyboard inputs not working (even though the mouse inputs did)
    keyboard._listener.start_if_necessary()
    k_thread.start()
    m_thread.join()
    k_thread.join()
Exemple #12
0
import fileinput
import json
import sys

class_by_name = {
    'ButtonEvent': mouse.ButtonEvent,
    'WheelEvent': mouse.WheelEvent,
    'MoveEvent': mouse.MoveEvent,
}


def print_event_json(event):
    # Could use json.dumps(event.__dict__()), but this way we guarantee semantic order.
    d = event._asdict()
    d['event_class'] = event.__class__.__name__
    print(json.dumps(d))
    sys.stdout.flush()


mouse.hook(print_event_json)


def load(line):
    d = json.loads(line)
    class_ = class_by_name[d['event_class']]
    del d['event_class']
    return class_(**d)


mouse.play(load(line) for line in fileinput.input())
Exemple #13
0
    MoveEvent(x=500, y=409, time=1611227281.3726728),
    MoveEvent(x=500, y=409, time=1611227281.4196038),
    MoveEvent(x=500, y=409, time=1611227281.5522091),
    MoveEvent(x=500, y=408, time=1611227281.559552)
]
a31 = [
    MoveEvent(x=500, y=408, time=1611227281.3414292),
    MoveEvent(x=500, y=408, time=1611227281.3414292),
    MoveEvent(x=500, y=409, time=1611227281.3571086),
    MoveEvent(x=500, y=409, time=1611227281.3726728),
    MoveEvent(x=500, y=409, time=1611227281.4196038),
    MoveEvent(x=500, y=409, time=1611227281.5522091),
    MoveEvent(x=500, y=408, time=1611227281.559552),
    MoveEvent(x=500, y=408, time=1611227281.5682094)
]

for i in range(1, 31):
    k = eval('a' + str(i))
    print(i)
    mouse.play(k)
    time.sleep(5)
    print('************************************')
    print('************************************')
    print('************************************')
    print('************************************')
    print('************************************')
# mouse.play(a1)
# mouse.sleep(5)
# mouse.play(a2)
# mouse.sleep(5)
Exemple #14
0
     )
     running = True
     print("Playing the PMR in 5")
     seqExt.countdown()
     if not loopCnt:
         print("Playing recording once")
         loopCnt = 1
     else:
         loopCnt = int(loopCnt)
     cycle = 1
     timesToRun = "infinity" if loopCnt < 0 else loopCnt
     while running:
         if loopCnt != 1:
             print("Playing recording for time " + str(cycle) +
                   '/' + str(timesToRun))
         mouse.play(pmr)
         if cycle == timesToRun: running = False
         cycle += 1
 elif option == 'j':
     fName = seqExt.nameFile(recType="pmr")
     seqExt.PMRtoFile(pmr, fName)
 elif option == 'k':
     print(
         "\nThe script will start recording your mouse movements, clicks, and scrolls in 5"
     )
     seqExt.countdown()
     print(
         "Your mouse is now being recorded. Press Middle Click in any application to stop."
     )
     pmr = mouse.record(button="middle")
     print("\nRecording session ended. What do you want to do now?")
Exemple #15
0
    def _play_mouse(self):
        logger.debug("Mouse kaydı oynatılıyor")

        mouse.play(self.events.mouse_events)
Exemple #16
0
import mouse
import pickle

actions = []

fileName = input ("Enter template name w/o extension: \n")
fileName = "Templates/" + fileName + ".dat"

with open(fileName, 'rb') as f:
	actions = (pickle.load(f))

f.close()

mouse.play(actions)
Exemple #17
0
import time

base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
mouse_events = []

#
mouse.hook(mouse_events.append)
keyboard.start_recording()
time.sleep(.2)
#we move to arbitrary position and press a harmless key so the keyboard and mouse events start recording at the same time.
pyautogui.moveTo(500, 200)
pyautogui.press('left')

keyboard.wait("a")

mouse.unhook(mouse_events.append)
keyboard_events = keyboard.stop_recording()
#Keyboard threadings:
k_thread = threading.Thread(target=lambda: keyboard.play(keyboard_events))
k_thread.start()

#Mouse threadings:

m_thread = threading.Thread(target=lambda: mouse.play(mouse_events))
m_thread.start()

#waiting for both threadings to be completed

k_thread.join()
m_thread.join()
Exemple #18
0
def play_input(input: list):
    mouse.play(input,
               include_moves=False,
               include_wheel=False,
               speed_factor=1.01)  #1.01
Exemple #19
0
def play():
    global events
    global playing
    mouse.play(events, 0.7)
    playing = False
Exemple #20
0
    def test_record_play(self):
        from threading import Thread, Lock
        lock = Lock()
        lock.acquire()

        def t():
            self.recorded = mouse.record(RIGHT)
            lock.release()

        Thread(target=t).start()
        self.click()
        self.wheel(5)
        self.move(100, 50)
        self.press(RIGHT)
        lock.acquire()

        self.assertEqual(len(self.recorded), 5)
        self.assertEqual(self.recorded[0]._replace(time=None),
                         ButtonEvent(DOWN, LEFT, None))
        self.assertEqual(self.recorded[1]._replace(time=None),
                         ButtonEvent(UP, LEFT, None))
        self.assertEqual(self.recorded[2]._replace(time=None),
                         WheelEvent(5, None))
        self.assertEqual(self.recorded[3]._replace(time=None),
                         MoveEvent(100, 50, None))
        self.assertEqual(self.recorded[4]._replace(time=None),
                         ButtonEvent(DOWN, RIGHT, None))

        mouse.play(self.recorded, speed_factor=0)
        events = self.flush_events()
        self.assertEqual(len(events), 5)
        self.assertEqual(events[0], (DOWN, LEFT))
        self.assertEqual(events[1], (UP, LEFT))
        self.assertEqual(events[2], ('wheel', 5))
        self.assertEqual(events[3], ('move', (100, 50)))
        self.assertEqual(events[4], (DOWN, RIGHT))

        mouse.play(self.recorded)
        events = self.flush_events()
        self.assertEqual(len(events), 5)
        self.assertEqual(events[0], (DOWN, LEFT))
        self.assertEqual(events[1], (UP, LEFT))
        self.assertEqual(events[2], ('wheel', 5))
        self.assertEqual(events[3], ('move', (100, 50)))
        self.assertEqual(events[4], (DOWN, RIGHT))

        mouse.play(self.recorded, include_clicks=False)
        events = self.flush_events()
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0], ('wheel', 5))
        self.assertEqual(events[1], ('move', (100, 50)))

        mouse.play(self.recorded, include_moves=False)
        events = self.flush_events()
        self.assertEqual(len(events), 4)
        self.assertEqual(events[0], (DOWN, LEFT))
        self.assertEqual(events[1], (UP, LEFT))
        self.assertEqual(events[2], ('wheel', 5))
        self.assertEqual(events[3], (DOWN, RIGHT))

        mouse.play(self.recorded, include_wheel=False)
        events = self.flush_events()
        self.assertEqual(len(events), 4)
        self.assertEqual(events[0], (DOWN, LEFT))
        self.assertEqual(events[1], (UP, LEFT))
        self.assertEqual(events[2], ('move', (100, 50)))
        self.assertEqual(events[3], (DOWN, RIGHT))
Exemple #21
0
def mouse_mover(record):
    while True:
        mouse.play(record)
Exemple #22
0
# drag from (0, 0) to (100, 100) relatively with a duration of 0.1s
mouse.drag(0, 0, 100, 100, absolute=False, duration=0.1)

# whether a button is clicked
print(mouse.is_pressed('right'))

# move 100 right & 100 down
mouse.move(100, 100, absolute=False, duration=0.2)

# make a listener when left button is clicked
mouse.on_click(lambda: print("Left Button clicked."))
# make a listener when right button is clicked
mouse.on_right_click(lambda: print("Right Button clicked."))

# remove the listeners when you want
mouse.unhook_all()

# scroll down
mouse.wheel(-1)

# scroll up
mouse.wheel(1)

# record until you click right
events = mouse.record()

# replay these events
mouse.play(events[:-1])