Metadata-Version: 2.1
Name: console-ctrl
Version: 0.1.0
Summary: Send CTRL-C event to a target console process WITHOUT causing KeyboardInterrput at the caller side.
Home-page: https://github.com/arvinpan/console-ctrl
Author: Arvin Pan
Author-email: exarvin@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# Console CTRL

This simple package allows you to send CTRL-C event to a target console process WITHOUT causing KeyboardInterrput at the caller side.

The solution is based on posts shared on stackoverflow (see Reference for details).

## Usage

Install with `pip install console-ctrl`

In you code:

```python
import console_ctrl
import subprocess

# Start some command IN A SEPARATE CONSOLE
p = subprocess.Popen(['some_command'], creationflags=subprocess.CREATE_NEW_CONSOLE)
# Do something else

console_ctrl.send_ctrl_c(p.pid)
```

Note: the target process should be started with `creationflags=subprocess.CREATE_NEW_CONSOLE`.

## Reference

Specially thanks to people shared solutions here:

- https://stackoverflow.com/questions/7085604/sending-c-to-python-subprocess-objects-on-windows
- https://stackoverflow.com/questions/813086/can-i-send-a-ctrl-c-sigint-to-an-application-on-windows

More official docs:

- https://docs.microsoft.com/en-us/windows/console/generateconsolectrlevent
- https://docs.python.org/3/library/subprocess.html


