Skip to main content

Clone your repetitive PC tasks

Project description

pccloner

When you execute a task on your PC, it captures mouse and keyboard actions, including the cursor's position and a preceding screenshot. You can then replay the captured task whenever desired.

Supported Features:

  • Capable of replaying double clicks and drag motions.
  • Designed to replay almost all keystrokes (please report any unsupported key).
  • Tested on Ubuntu 20.04 and Windows 11.
  • Supports all hotkeys and sequences of hotkeys (please report any unsupported hotkey).
  • It records and replays the cursor trajectory before each keyboard and mouse event. This is important for activating some functionality by putting the cursor over a screen region.

Conditions for Optimal Performance: The stored task must be replayed on the same computer, and the screen's initial state during replay should closely resemble the initially stored screen state.

Known Issues:

  • On Ubuntu 20.04:
    1. Occasionally, the collector registers one extra scroll action than required, which does not accurately replicate the task.
    2. At replaying time, pushing buttons to write over "Show Applications" does not work. The written words are sent to terminal.
    3. If you use a hidden bar of tasks, then the replayer cannot activate it even fi this action was recorded.
  • On Windows 11:
    1. Scrolling isn't detected when using a touchpad; please use a mouse instead.
    2. The function (fn) key is not recognized, but detected.
    3. The alt_gr key can generate sequences of pairs (alt_gr + ctrl_l), leading to unnecessary storage of screenshots.
  • Sometimes, in the process of minimizing a window, the size and location of the window are different w.r.t the original stored task. The replayer could fail in this case.

Authors

Installation

pip install pccloner

On ubuntu: it requires to install gnome-screenshot.

sudo apt install gnome-screenshot

Usage

  1. Write a python script with following lines:
File: collector.py

from pccloner.pcdata import Collector

if __name__ == '__main__':
    pc = Collector()
    data_df = pc.start()
  1. Run the previous script python collector.py
  2. Press the ESC key to start recording. And don't forget to press again the ESC key to terminate the recording. This code will create a folder called "data" where it will save all the data related to your task.
  3. Use the next code to replay your previous stored task python replayer.py -p [YOUR_PATH_TO_CSV_FILE]. At replaying, you can exit the process pressing ESC.
File: replayer.py

from glob import glob 
from pccloner.pctask import Replayer
import pandas as pd
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-p', '--csvpath', help="path to the task data")
parser.add_argument('--viz', action=argparse.BooleanOptionalAction, default=False, help="To visualize actions")
parser.add_argument('--screen', action=argparse.BooleanOptionalAction, help="True means that it uses the current screenshots to visualize actions")
parser.add_argument('--mousemoves', action=argparse.BooleanOptionalAction, help="True means that cursor movements before each event is performed (except to drags events)")

args = parser.parse_args()

if not args.csvpath:
   print(glob('data/*/*.csv'))
   print('Select your stored task using the argument -p to give the path')
else: 
   sample = pd.read_csv(args.csvpath)
   task1 = Replayer(sample, data_dir='./')
   task1.execute(viz=args.viz, screen_flag=args.screen, mousemoves_flag=args.mousemoves)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pccloner-0.0.24.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pccloner-0.0.24-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file pccloner-0.0.24.tar.gz.

File metadata

  • Download URL: pccloner-0.0.24.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for pccloner-0.0.24.tar.gz
Algorithm Hash digest
SHA256 f8072a2762934a67e6cfc5dae7bdcf8503cab55799bdc99f8e0a09b18be26628
MD5 35c21cac69d0da9590439548a2041ba0
BLAKE2b-256 0f5529452b3b7f3a8f3225c5ae66c0084398ff0e76e5bdcedfcd9b3701f726b7

See more details on using hashes here.

File details

Details for the file pccloner-0.0.24-py3-none-any.whl.

File metadata

  • Download URL: pccloner-0.0.24-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for pccloner-0.0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 9f8b4a718e1f08e8ba98c821c9b62c3c3e60f0c5a5dc4048f3edbe6354791213
MD5 e8d07015186a529dc9db195ba6328f47
BLAKE2b-256 9750c4fef1daed34a209f1b45f387272573a4cf1cbf12b5eaccab09d57287f4c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page