Skip to main content

Dokkey is a Python package designed to detect keypresses on Windows

Project description

Dokkey

Dokkey is a Python package designed to detect keypresses on Windows. It captures keyboard input and returns the ASCII code of the key pressed. This package has been tested on Windows 11.


Features

  • Detects keypresses on Windows.
  • Returns the ASCII code of the key pressed.
  • Lightweight and easy to integrate into your projects.

Requirements

  • Python 3.7 or higher
  • Windows OS (Tested on Windows 11)

Installation

Install the package using pip:

pip install dokkey

Usage

Here is an example of how to use Dokkey:

import dokkey

# Define a Python callback
def on_key(vk_code):
    print(f"Key pressed: {vk_code}")

# Install the hook
dokkey.install_hook(on_key)

try:
    print("Listening for key presses. Press Ctrl+C to stop.")
    dokkey.run_message_loop()
except KeyboardInterrupt:
    dokkey.uninstall_hook()
    print("Stopped.")

Output Example

Listening for key presses. Press Ctrl+C to stop.
Key pressed: 65  # (A key)
Key pressed: 98  # (b key)

How It Works

Dokkey leverages Windows APIs to capture global keyboard events and converts the input to ASCII codes. It ensures minimal interference with other running applications.

Limitations

This package works only on Windows. It may require administrator privileges for certain use cases.

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request if you have suggestions or improvements.

Local Development

To set up a local development environment, follow these steps:

  1. Create and activate a virtual environment:
    python -m venv venv
    venv/Scripts/activate
    
  2. Build & install the project
    python setup.py build
    python setup.py install
    

The module is now installed in the virtual environment. You can test it by running the example script:

python examples/example.py

License

This project is licensed under the Apache-2.0 License. See the LICENSE file for details.

Author

Developed by Sekiraw

Acknowledgements

Thanks to the Python and Windows development communities for providing tools and resources to make this project possible.

This styling ensures clarity, proper sectioning, and good readability. Let me know if you`d like any further adjustments!

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

dokkey-1.1.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

dokkey-1.1.1-cp312-cp312-win_amd64.whl (12.3 kB view details)

Uploaded CPython 3.12Windows x86-64

File details

Details for the file dokkey-1.1.1.tar.gz.

File metadata

  • Download URL: dokkey-1.1.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for dokkey-1.1.1.tar.gz
Algorithm Hash digest
SHA256 be13fef554073dbec89091688e87cc5f43ad99f51fc2cf8ac11854e454fa2a12
MD5 277d5ed9bfdf6afc43cd7665788f5c2a
BLAKE2b-256 fa36675fc308a7761dc00ba835755c9d417c3a18c84bb08416c252b4fd8a1490

See more details on using hashes here.

File details

Details for the file dokkey-1.1.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: dokkey-1.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for dokkey-1.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1aef78f51092f7ef3aae9ceffeb360165de8f775cbce0ecac3fcc0a00af8b6ed
MD5 661eeb6beabd8f68e38c2c4d2ba480de
BLAKE2b-256 ae248eb021f42a4f1a85c3aaf63e892207f7acf0a9b9e0d34d8778b83f6c07ef

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