Control your keyboard and mouse with R code by simulating key presses and mouse clicks. The input simulation is implemented with the Windows API.
KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.
This package provide 6 functions which are developed in C++:
keybd.press()Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using
keybd.release()Simulate the release of keyboard keys held by
mouse.click()Simulate left and right button of mouse clicks.
mouse.release()Simulate the release of mouse button held by
mouse.get_cursor()Get current cursor coordinate of screen.
mouse.move()Move cursor to specific coordinate of screen.
The supported keys are listed in
KeyboardSimulatorsupport operating systems other than Windows?
KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.
Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.
if (!require("devtools")) install.packages("devtools")devtools::install_github("ChiHangChen/KeyboardSimulator")library(KeyboardSimulator)
keybd.releaseto release the held key
keybd.press("Alt", hold = TRUE)keybd.press('Tab')keybd.release('Alt')
# Return the x,y coordinate of screen  960 540
mouse.move(960, 540, duration=3)
mouse.click(button = "left", hold = TRUE)mouse.move(960, 540)mouse.release()
It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.
Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with
packrat and can be restored by running
if (!require(packrat)) install.packages("packrat")packrat::on()packrat::restore()
roxygen2 R package is used to manage
KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!
You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running
The project is set up to do this whenever building and testing the package.