All Projects → autopilot-rs → Autopilot Rs

autopilot-rs / Autopilot Rs

Licence: other
A simple, cross-platform GUI automation module for Rust.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Autopilot Rs

Autopy
A simple, cross-platform GUI automation module for Python and Rust.
Stars: ✭ 522 (+210.71%)
Mutual labels:  automation, cross-platform, simulation, gui, input
Enigo
Cross platform input simulation in Rust
Stars: ✭ 254 (+51.19%)
Mutual labels:  automation, cross-platform, simulation, input
Tvtower
A tribute to Mad TV. Written in BlitzMax, Lua and a bit of C.
Stars: ✭ 73 (-56.55%)
Mutual labels:  cross-platform, simulation
Maze
Maze Applied Reinforcement Learning Framework
Stars: ✭ 85 (-49.4%)
Mutual labels:  automation, simulation
Shoes4
Shoes 4 : the next version of Shoes
Stars: ✭ 1,509 (+798.21%)
Mutual labels:  cross-platform, gui
Customui
Library to create custom UI's in MCPE 1.2+
Stars: ✭ 60 (-64.29%)
Mutual labels:  gui, input
Spirit
Atomistic Spin Simulation Framework
Stars: ✭ 67 (-60.12%)
Mutual labels:  cross-platform, simulation
Xut.js
批量生成应用平台 http://t.cn/RazBbL0
Stars: ✭ 105 (-37.5%)
Mutual labels:  cross-platform, simulation
Youtube Dl Gui
A cross platform front-end GUI of the popular youtube-dl written in wxPython.
Stars: ✭ 7,914 (+4610.71%)
Mutual labels:  cross-platform, gui
Avalonia
A cross platform XAML framework for .NET
Stars: ✭ 12,588 (+7392.86%)
Mutual labels:  cross-platform, gui
Phoenix
wxPython's Project Phoenix. A new implementation of wxPython, better, stronger, faster than he was before.
Stars: ✭ 1,698 (+910.71%)
Mutual labels:  cross-platform, gui
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-19.64%)
Mutual labels:  cross-platform, gui
Crossterm
Cross platform terminal library rust
Stars: ✭ 1,023 (+508.93%)
Mutual labels:  cross-platform, input
Python Uiautomation For Windows
(Donot use 3.7.6,3.8.1)🐍Python 3 wrapper of Microsoft UIAutomation. Support UIAutomation for MFC, WindowsForm, WPF, Modern UI(Metro UI), Qt, IE, Firefox, Chrome ...
Stars: ✭ 961 (+472.02%)
Mutual labels:  automation, gui
Nitroshare Desktop
Network file transfer application for Windows, OS X, & Linux
Stars: ✭ 1,150 (+584.52%)
Mutual labels:  cross-platform, gui
Sandpolis
Experimental remote monitoring and management
Stars: ✭ 30 (-82.14%)
Mutual labels:  automation, cross-platform
Nodegui Starter
A starter repo for NodeGui projects
Stars: ✭ 93 (-44.64%)
Mutual labels:  cross-platform, gui
Omnigui
A cross-platform GUI framework from scratch just to learn
Stars: ✭ 147 (-12.5%)
Mutual labels:  cross-platform, gui
Arf Converter
Bulk ARF file converter
Stars: ✭ 10 (-94.05%)
Mutual labels:  automation, gui
Giu
Cross platform rapid GUI framework for golang based on Dear ImGui.
Stars: ✭ 862 (+413.1%)
Mutual labels:  cross-platform, gui

Docs Crates.io Travis Build Status Appveyor Build Status

AutoPilot

AutoPilot is a Rust port of the Python C extension AutoPy, a simple, cross-platform GUI automation library for Python. For more information, see the README on that repo.

Currently supported on macOS, Windows, and X11 with the XTest extension.

Examples

The following will move the mouse across the screen as a sine wave:

extern crate autopilot;
extern crate rand;
use rand::Rng;

const TWO_PI: f64 = std::f64::consts::PI * 2.0;
fn sine_mouse_wave() {
    let screen_size = autopilot::screen::size();
    let scoped_height = screen_size.height / 2.0 - 10.0; // Stay in screen bounds.
    let mut rng = rand::thread_rng();
    for x in 0..screen_size.width as u64 {
        let y = (scoped_height * ((TWO_PI * x as f64) / screen_size.width).sin() + 
                 scoped_height).round();
        let duration: u64 = rng.gen_range(1, 3);
        autopilot::mouse::move_to(autopilot::geometry::Point::new(
            x as f64,
            y as f64
        )).expect("Unable to move mouse");
        std::thread::sleep(std::time::Duration::from_millis(duration));
    }
}

This will enter the keys from the string "Hello, world!" and then prompt an alert with the same text:

extern crate autopilot;

fn main() {
    autopilot::key::type_string("Hello, world!", &[], 200., 0.);
    let _ = autopilot::alert::alert("Hello, world!", None, None, None);
}

Contributing

If you are interested in this project, please consider contributing. Here are a few ways you can help:

License

This project is licensed under either the Apache-2.0 or MIT license, at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].