How to Control a Keyboard Using Python

control keyboard using python

To control keyboard using python there is a library in python named as PyAutoGUI. Let’s check out how to actually control keyboard.

Environment Setup to Control Keyboard Using Python

Let’s get started by setting up the virtual environment, as it is always less easy to handle python projects. Here we are will use the python built-in feature to create a python virtual environment.

Follow the below step to set up the python virtual environment.

Step 1: Use the necessary command to create the environment.

python -m venv envname

Step 2: Active virtual environment.



Linux & Mac

source /venvname/bin/activate

Once our environment is activated, we will install the required packages or libraries we need for our projects.

Here we will use pyinput and pyautogui python packages. To install them to, follow the next step.

Step 3: install python packages.

pip install pyinput pyautogui

So as our setup is ready, let’s start coding and see how we can use these python packages and control our keyboard.

Control a Keyboard Using PyAutoGUI

Let’s automate the keyboard using a fantastic python library called pyautogui.

What is pyautogui?

pyautogui is a powerful Python library that provides cross-platform support for automating keyboard and mouse interactions. It lets you easily control the mouse cursor, simulate mouse clicks and movements, and emulate keyboard input. pyautogui is built on top of other libraries and frameworks.

One of the key features of pyautogui is its platform independence, so it works on all operating systems, making it suitable for automation tasks on Windows, macOS, and Linux. It provides simple and intuitive codes that allow you to automate repetitive tasks, create GUI interactions, perform screen captures, and even build game bots.

With pyautogui, you can programmatically control the mouse to move, click, and drag and simulate key presses, releases, and combinations. It is also used to type anything and controls all the keys automatically. It also offers functions for locating and interacting with on-screen elements based on their color or image pattern.

Features of pyautogui 

Below are the features of pyautogui.

  • Simulate key presses, releases, and combinations programmatically.
  • Control keyboard events and interact with applications using Python.
  • Support for platform-independent keyboard automation (Windows, macOS, Linux).
  • Emulate special keys and modifiers (Shift, Ctrl, Alt) for enhanced control.
  • Automate text input by typing paragraphs, sentences, or specific strings.
  • Perform keyboard-based navigation, menu selection, and button clicks.
  • Capture keyboard input and trigger actions based on specific key events.
  • Create virtual keyboard emulations for touch-enabled devices.
  • Integrate keyboard control with mouse interactions for comprehensive automation.
  • Suitable for various applications, including GUI automation, game development, and accessibility enhancements.

So let’s review the examples we can use with pyautogui to control the keyboard.

Example 1: how to simulate text input using PyAutoGUI?

This example will simulate text input using the python pyautogui typewrite function.

import pyautogui

# Type a sentence
pyautogui.typewrite(“Hello, World!”)

# Type with a delay between each character
pyautogui.typewrite(“Hello, World!”, interval=0.1)

The typewrite function allows you to simulate keyboard typing by providing the desired text as an argument. You can also control the typing speed by specifying an interval between each character.

Example 2: how to emulate Kkey presses using PyAutoGUI?

In this example, we will automatically trigger keyboard keys using the pyautogui’s press function.

import pyautogui

# Simulate pressing the Enter key“enter”)

# Simulate pressing multiple keys simultaneously

Using the press function, you can emulate key presses. Simply pass the desired key as an argument, and PyAutoGUI will simulate the corresponding key press event. You can also combine multiple key presses using keyDown and keyUp functions.

Example 3: How to perform hotkey combinations in PyAutoGUI?

In this example, we will trigger multiple keys using the pyautogui hotkey function.

import pyautogui

# Simulate pressing Ctrl+C hotkey combination
pyautogui.hotkey(“ctrl”, “c”)

# Simulate pressing Ctrl+Shift+Esc to open the Task Manager
pyautogui.hotkey(“ctrl”, “shift”, “esc”)

The hotkey function allows you to simulate pressing multiple keys simultaneously, commonly known as hotkey combinations. By passing the desired keys as arguments, PyAutoGUI emulates the specified combination.

Example 4: How to Controlling Window Focus in PyAutoGUI?

In this example, we will control the windows tab. We will open Notepad from background to foreground and then change windows using the alt+tab button using pyautogui’s getWindowsWithTitle function.

import pyautogui

# Bring a specific window to the foreground

# Switch between open windows

PyAutoGUI provides the ability to control window focus. You can activate a specific window by using the getWindowsWithTitle function and the activate method. Additionally, we can switch between multiple open windows using key presses, such as Alt+Tab.


In conclusion, this blog post has provided a comprehensive overview of how to control a keyboard using Python with the help of PyAutoGUI. We started by setting up the environment, creating a python virtual environment, and installing the necessary packages. Then, we delved into the features and capabilities of PyAutoGUI, highlighting its platform independence and its ability to automate keyboard and mouse interactions on various operating systems.

After learning all the examples, you are now ready to control the keyboard using Python. Explore the vast possibilities PyAutoGUI offers and unlock new ways to automate, interact, and enhance your applications. Happy coding!

FAQs About Controlling Keyboard Using Python

Can I control the keyboard input speed or add delays between keystrokes?

You can control the input speed or add delays using the typewrite function’s interval parameter. You can introduce pauses between each character being typed by specifying a value in seconds.

Are there any alternative libraries for keyboard control in Python?

Yes, besides PyAutoGUI, other popular libraries for keyboard control in Python include keyboard and pynput. These libraries offer similar functionality and can be used depending on specific requirements.

What is the Python module for keyboard and mouse control?

PyAutoGUI is the Python module commonly used for keyboard and mouse control. It provides keyboard and mouse automation functions, allowing you to simulate key presses, mouse clicks, and movements.

How do you use multi keys on a keyboard with PyAutoGUI?

PyAutoGUI provides the pyautogui.hotkey() function to simulate pressing multiple keys on the keyboard. Pass the desired keys as separate string arguments, and PyAutoGUI will emulate their simultaneous pressing.

Which Python library is for controlling the keyboard?

PyAutoGUI is a popular Python library for controlling the keyboard. It provides functions and methods to emulate keyboard input, simulate key presses, and handle keyboard events.