- fixes second monitor not fully covered (gap at top): each monitor now gets its own window sized exactly to its rcMonitor in device coords, with per-monitor V2 DPI awareness, so it covers the full screen regardless of layout/DPI - dropped pygame; black fill + 'ESC - exit' hint drawn via GDI - global ESC via low-level keyboard hook (works without window focus) - logging to %TEMP%\black_screen_dim.log (start, monitor rects, brightness, errors) - requirements.txt: pygame removed
33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
# Black Screen Dim
|
|
|
|
Маленькая утилита для Windows: при запуске гасит экран до чёрного (яркость → 0),
|
|
показывает чёрный безрамочный полноэкран, скрывает курсор. По `ESC` — выход,
|
|
яркость и курсор возвращаются.
|
|
|
|
## Запуск из исходников (Windows)
|
|
```bat
|
|
python -m venv venv
|
|
venv\Scripts\activate
|
|
pip install -r requirements.txt
|
|
python black_screen_dim.py
|
|
```
|
|
|
|
## Сборка в .exe
|
|
```bat
|
|
pip install pyinstaller
|
|
pyinstaller "Black Screen Dim.spec"
|
|
```
|
|
Готовый exe — в `dist\Black Screen Dim\`.
|
|
|
|
## Зависимости
|
|
- `screen-brightness-control` — управление яркостью (только Windows)
|
|
- чёрная заливка экрана — напрямую через Win32 API (ctypes, входит в стандартную библиотеку), pygame больше не нужен
|
|
- лог пишется в `%TEMP%\black_screen_dim.log`
|
|
|
|
> Управление яркостью работает только на Windows. На других ОС приложение
|
|
> просто покажет чёрный экран без изменения яркости.
|
|
|
|
> При нескольких мониторах чёрный экран накрывает **весь виртуальный рабочий стол**
|
|
> (все мониторы сразу, включая те, что слева/сверху от основного), а яркость
|
|
> гасится и восстанавливается **на каждом** мониторе по отдельности.
|