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.0.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.0-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.0.tar.gz.

File metadata

  • Download URL: dokkey-1.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 2addf7df04dd9368a60836e9811957388dc908144bb10262fe507c8bc4b23e73
MD5 15c836fe32b13295b35f6683de8c5090
BLAKE2b-256 21e92daa922ce8b6e651f329e5979c6587e66e0be5b80f7ba03e158f1f420d35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dokkey-1.1.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 124a512f68e5e829d0352debeb9b52c7967db97a82c6138f07cba88bf8b2eb91
MD5 b0ffff588276c91c78c786cdb0ee7ef3
BLAKE2b-256 6f19e6898c606642aaf2fbb4a47f196ac0b0d928719e4dd91387d2df725fccb3

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