Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jezachen/wingrab
WinGrab: A simple tool to get the PID of the window under the cursor.
https://github.com/jezachen/wingrab
python tools win32
Last synced: about 2 months ago
JSON representation
WinGrab: A simple tool to get the PID of the window under the cursor.
- Host: GitHub
- URL: https://github.com/jezachen/wingrab
- Owner: JezaChen
- License: mit
- Created: 2023-10-20T10:33:34.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-31T02:05:03.000Z (about 1 year ago)
- Last Synced: 2024-03-25T12:09:15.935Z (10 months ago)
- Topics: python, tools, win32
- Language: Python
- Homepage:
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WinGrab
A simple tool to get the PID of the window under the mouse cursor, implemented in **Python**.`wingrab` is implemented in the Python language, supports running directly and integrating into Python code,
and currently only supports Windows.## Installation
### From pip```bash
pip install wingrab
```### From source code
Download the [wingrab.py](wingrab%2Fwingrab.py) and [cursor.cur](wingrab%2Fcursor.cur) files and place them in your project directory,
ensuring the `cursor.cur` file is in the same location as `wingrab.py`.## Usage
### Run directly in CLI
**Ensure the `wingrab` package is installed via pip**, You can then run it directly in the CLI using:
```bash
py-wingrab
```or
```bash
py-wingrab grab
```You can run it together with some powershell commands like `Get-Process`:
```bash
Get-Process -Id $(py-wingrab)
```If `wingrab` crashes, and the mouse cursor has changed to a cross,
run the `cleanup` command to try to restore the mouse cursor.```bash
py-wingrab cleanup
```### Integrate into your Python code
It is very simple to integrate `wingrab` into your Python code,
you just need to call the `grab` function in the `wingrab` package.```python
from wingrab import wingrabpid = wingrab.grab()
```The `grab` function returns the PID of the window under the cursor as an integer.
Note that the `grab` will block the current thread until the user clicks the left mouse button,
so if you want to use it in a GUI application,
you had better call the `grab` function in a sub thread. (See examples below)**Note: `wingrab` can be used in both the main thread and the sub threads,
but if you want to use it in a sub thread, make sure to call `wingrab.grab()` in the main thread first.**To restore the global mouse cursor to the default when `wingrab` crashes, invoke the `cleanup` function.
```python
from wingrab import wingrabwingrab.cleanup()
```## Examples
`examples` directory contains several examples which demonstrate usage and integration methods.
You can run them directly after installing the package:- [pyqt5_example.py](examples%2Fpyqt5_example.py): An example of using `wingrab` in the main thread of a PyQt5 application.
- [pyqt5_example_run_in_sub_thread.py](examples%2Fpyqt5_example_run_in_sub_thread.py): An example of using `wingrab` in the sub thread of a PyQt5 application.
- [tkinter_example.py](examples%2Ftkinter_example.py): An example of using `wingrab` in a Tkinter application.
- [run_in_sub_thread.py](examples%2Frun_in_sub_thread.py): An example of using `wingrab` in a sub thread of a console application.