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 keys).
  • Tested on Ubuntu 20.04 and Windows 11.
  • It records and replays the cursor's trajectory before each keyboard and mouse event.

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 initial state when the task was recorded.

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. During replay, attempting to type over "Show Applications" does not work; the input is sent to the terminal instead.
    3. If you use a hidden taskbar, the replayer cannot activate it, even if this action was recorded.
    4. The 'Caps Lock' key is saved correctly, but it is not triggered during the task replay.
  • On Windows 11:
    1. Scrolling isn't detected when using a touchpad; please use a mouse instead.
    2. The function (fn) key is detected but not recognized.
    3. The alt_gr key can generate sequences of pairs (alt_gr + ctrl_l), leading to the unnecessary storage of screenshots.
  • General issues:
    1. Sometimes, when minimizing a window, the size and location of the window differ from the original stored task, which could cause the replayer to fail.

Authors

Installation

pip install pccloner

On ubuntu: it requires to install gnome-screenshot.

sudo apt install gnome-screenshot

Basic usage

  1. Download and run the file python testing.py in your environment where pcpcloner is installed.
  2. Press the ESC key to start recording. Remember to press the ESC key again to stop the recording. The program will create a folder called 'data' where all task-related data will be saved.
  3. If you want to replay the task, type 'yes' when prompted with 'Do you want to replay the previous task? and press enter.

Advanced 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_pr 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/*/raw_pcdata.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.1.0.tar.gz (17.1 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.1.0-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pccloner-0.1.0.tar.gz
  • Upload date:
  • Size: 17.1 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.1.0.tar.gz
Algorithm Hash digest
SHA256 0ce6349e9f03ab16f081ee58047f32b0464673d78b135c6de59f0b107e82ca37
MD5 3a530794f2bb747c06ba72a449573366
BLAKE2b-256 ec11cd0b49e586b6040ad6fe63b76e6ab3a5659cb77b8554add64c4a96b0e105

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pccloner-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.5 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 463b7340d00ec561caa4268737088f74b833154ed279ae103c02f573fbeec572
MD5 f9667d7a8d613ef3d0d07c5bde7a4200
BLAKE2b-256 57f83ead5d74454cab070ede72faefa0a786471d08cb908f4e6081e42bab0bc0

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