Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stephen-fox/user32util
Package user32util provides helper functionality for working with Windows' user32 library.
https://github.com/stephen-fox/user32util
golang user-input user32-dll win32api windows
Last synced: 2 days ago
JSON representation
Package user32util provides helper functionality for working with Windows' user32 library.
- Host: GitHub
- URL: https://github.com/stephen-fox/user32util
- Owner: stephen-fox
- License: mit
- Created: 2019-05-31T00:19:23.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-03-02T20:04:51.000Z (9 months ago)
- Last Synced: 2024-06-20T01:54:49.017Z (5 months ago)
- Topics: golang, user-input, user32-dll, win32api, windows
- Language: Go
- Homepage:
- Size: 56.6 KB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# user32util
[![GoDoc][godoc-badge]][godoc]
[godoc-badge]: https://pkg.go.dev/badge/github.com/stephen-fox/user32util
[godoc]: https://pkg.go.dev/github.com/stephen-fox/user32utilPackage user32util provides helper functionality for working with Windows'
user32 library.## APIs
The library offers several helper functions for working with user32.Many of these functions require that you first load the user32 DLL:
```go
user32, err := user32util.LoadUser32DLL()
if err != nil {
// Error handling.
}
```#### Input listeners
- `NewLowLevelMouseListener()` - Starts a listener that reports on mouse input
- `NewLowLevelKeyboardListener()` - Starts a listener that reports on
keyboard input#### Send input
- `SendKeydbInput()` - Sends a single keyboard input
- `SendMouseInput()` - Sends a single mouse input
- `SendInput()` - Send input implements the `SendInput()` Windows system call
- `SendHardwareInput()` - Sends a single hardware input## Examples
The following examples can be found in the [examples/ directory](examples/):- [moveandclickmouse](examples/moveandclickmouse/main.go) - Moves the mouse
and then left clicks on the new position. Takes inputs as command line
arguments in `x,y` format. E.g., `example 1221,244 460,892`. Coordinates
can be printed by running: `example print`
- [readkeyboard](examples/readkeyboard/main.go) - Reads keyboard presses and
prints them to stderr
- [readmouse](examples/readmouse/main.go) - Reads mouse inputs and prints them
to stderr
- [sendinput](examples/sendinput/main.go) - Sends keyboard or mouse inputs
to Windows## Special thanks
This library is influenced by jimmycliff obonyo's work in this GitHub gist:
https://gist.github.com/obonyojimmy/52d836a1b31e2fc914d19a81bd2e0a1bThank you for documenting your work, jimmycliff.