Sometimes the best projects are not huge.
Sometimes they are small utilities that solve one specific problem really well.
I wanted a simple way to know when my Windows PC turns on, restarts, or was previously shut down. I did not want a heavy monitoring dashboard or an enterprise-level monitoring tool. I just wanted a clean Telegram notification with useful details.
So I built Windows11Alert.
It is a lightweight Windows utility that sends Telegram alerts when a PC starts. It also detects the previous shutdown or restart event from Windows Event Logs and reports it on the next startup.
GitHub repository:
https://github.com/TutorialsAndroid/Windows11Alert
Latest release:
https://github.com/TutorialsAndroid/Windows11Alert/releases/latest
What Windows11Alert does
Windows11Alert runs automatically when Windows starts and sends a Telegram message with system details.
It can report:
- PC name
- Windows username
- Local IP address
- Public IP address
- Date and time
- Boot time
- OS version
- Processor
- Architecture
- RAM details
- Previous shutdown/restart event
The basic flow looks like this:
Windows starts
↓
Windows11Alert runs automatically
↓
It checks Windows Event Logs
↓
It sends previous shutdown/restart details
↓
It sends current startup details
Example Telegram message
The Telegram message looks something like this:
🟢 PC Turned On
🖥️ PC Name: DEV2
👤 User: HP-User1
🌐 Local IP: 192.168.0.5
🌍 Public IP: xxx.xxx.xxx.xxx
📅 Date & Time: 2026-05-16 15:30:12
⏱️ Boot Time: 2026-05-16 15:29:40
💻 OS: Windows 11
🔢 OS Version: 10.0.xxxxx
⚙️ Processor: Intel64 Family...
🏗️ Architecture: AMD64
🧠 RAM: 15.78 GB Total
When a previous shutdown or restart is detected, the app sends another message with details from the Windows Event Log.
Why I built it
The original idea was simple:
Send me a Telegram message whenever my PC turns on.
That part was easy.
Then I wanted to add a shutdown alert.
At first, I tried sending a Telegram message during shutdown itself. I tested multiple approaches:
Task Scheduler shutdown trigger
Group Policy shutdown script
Hidden window shutdown detection
WM_QUERYENDSESSION
WM_ENDSESSION
Some methods worked when tested manually, but failed during actual shutdown.
Why?
Because Windows may close network services very quickly during shutdown. That means the app might detect shutdown but still fail to send the Telegram message before the network closes.
So I changed the approach.
Instead of trying to send the shutdown alert during shutdown, the app reads Windows Event Logs on the next startup and reports the previous shutdown/restart event.
This made the system much more reliable.
Tech stack
This project uses:
Python
Telegram Bot API
Windows Registry
Windows Event Logs
PyInstaller
Inno Setup
python-dotenv
psutil
requests
Python handles the core logic.
Telegram Bot API sends the messages.
PyInstaller converts the Python script into a standalone Windows executable.
Inno Setup creates the installer.
Telegram bot setup
Telegram is a great option for quick alert systems.
To use Windows11Alert, the user needs:
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
TELEGRAM_CHAT_ID=your_telegram_chat_id_here
You can create a Telegram bot using BotFather.
Steps:
- Open Telegram.
- Search for
BotFather. - Send:
/newbot
- Create your bot.
- Copy the bot token.
- Send a message to your bot.
- Open:
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates
- Find your
chat.id.
Keeping credentials safer with .env
One important thing I wanted to avoid was hardcoding the bot token in the Python file.
Hardcoding secrets is dangerous because if the project is pushed to GitHub, the token can leak.
So Windows11Alert uses a .env file:
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
And the .env file is ignored in Git:
.env
build/
dist/
Output/
__pycache__/
*.spec
This keeps credentials out of the repository.
Of course, .env is not perfect security. If something is stored on a local machine, the local user or admin can read it. But it is much better than hardcoding secrets into source code.
Auto-start using Windows Registry
To make the app run automatically when Windows starts, I used this registry path:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
The Python script adds itself to startup using the winreg module.
This means the app starts automatically whenever the current Windows user logs in.
Reading shutdown events from Windows Event Logs
The app checks Windows System Event Logs for shutdown and restart events.
Some useful event IDs are:
1074 - Planned shutdown/restart initiated by user or process
6006 - Event Log service stopped, usually clean shutdown
6008 - Unexpected shutdown
Instead of depending on live shutdown-time Telegram sending, Windows11Alert checks these events after the PC starts again.
That makes the shutdown/restart detection more reliable.
Packaging the app with PyInstaller
After the Python script was ready, I converted it into an EXE.
pyinstaller --onefile --noconsole --icon=icons/alert.ico --name Windows11Alert Windows11Alert.py
This creates:
dist/Windows11Alert.exe
I also created a separate uninstaller utility:
pyinstaller --onefile --noconsole --icon=icons/uninstaller.ico --name uninstaller uninstaller.py
Creating a Windows installer with Inno Setup
After building the EXE, I used Inno Setup to create a proper Windows installer.
The installer:
Copies Windows11Alert.exe to Program Files
Asks for Telegram Bot Token and Chat ID
Creates the .env file locally
Adds the app to Windows startup
Creates shortcuts
Handles uninstall cleanup
This made the project feel like an actual Windows application instead of just a Python script.
Project structure
The final project structure looks like this:
TELEGRAMPCALERT/
│
├── icons/
│ ├── alert.ico
│ └── uninstaller.ico
│
├── Windows11Alert.py
├── uninstaller.py
├── Windows11Alert_Setup.iss
├── README.md
├── .gitignore
│
├── build/
├── dist/
└── Output/
Generated folders like build, dist, and Output are ignored from GitHub.
GitHub release
I created a GitHub release and attached the installer:
Windows11Alert_Setup.exe
This makes it easy for anyone to download and install the app.
Release page:
https://github.com/TutorialsAndroid/Windows11Alert/releases/latest
What I learned
This project taught me a lot about how Windows behaves during startup and shutdown.
The biggest lesson was:
Do not depend on network operations during shutdown.
Even if a shutdown script works manually, it may fail during actual shutdown because Windows is already closing services.
Reading shutdown events on the next startup is a much more reliable approach.
I also learned that building a complete desktop utility is not only about writing the Python code.
A polished tool also needs:
Installer
Uninstaller
Startup registration
Credential handling
Logs
Documentation
Release assets
GitHub README
Limitations
Windows11Alert has some limitations:
It is Windows-only
Instant shutdown-time Telegram alerts are not guaranteed
Unexpected power loss may not always create a clean shutdown event
Telegram credentials are stored locally
For personal monitoring, this setup works well.
For production or enterprise-level monitoring, a proper background service and backend-based architecture would be better.
Future improvements
Some ideas I may add later:
System tray icon
Encrypted local config
Telegram test button during setup
Discord webhook support
Email alert support
Daily summary report
Windows service version
Better installer UI
Download
You can download the latest Windows installer here:
https://github.com/TutorialsAndroid/Windows11Alert/releases/latest
Contributions are welcome
Contributions, suggestions, and bug reports are welcome.
You can help by:
Opening issues
Suggesting features
Improving documentation
Refactoring code
Adding notification platforms
Improving installer/uninstaller behavior
Final thoughts
Windows11Alert started as a small Python experiment, but it became a complete Windows utility with Telegram integration, startup monitoring, Windows Event Log reading, EXE packaging, installer support, and uninstall cleanup.
It is a good reminder that practical projects do not always need to be huge.
Sometimes a useful tool is just a small idea executed properly.
Windows11Alert tells you when your PC starts and what happened before it did.

Top comments (0)