DEV Community

Akshay
Akshay

Posted on

I Built Windows11Alert — A Windows Utility That Sends Telegram Alerts When My PC Turns On

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.

Download Now

GitHub repository:

https://github.com/TutorialsAndroid/Windows11Alert
Enter fullscreen mode Exit fullscreen mode

Latest release:

https://github.com/TutorialsAndroid/Windows11Alert/releases/latest
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

You can create a Telegram bot using BotFather.

Steps:

  1. Open Telegram.
  2. Search for BotFather.
  3. Send:
/newbot
Enter fullscreen mode Exit fullscreen mode
  1. Create your bot.
  2. Copy the bot token.
  3. Send a message to your bot.
  4. Open:
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates
Enter fullscreen mode Exit fullscreen mode
  1. 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
Enter fullscreen mode Exit fullscreen mode

And the .env file is ignored in Git:

.env
build/
dist/
Output/
__pycache__/
*.spec
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

This creates:

dist/Windows11Alert.exe
Enter fullscreen mode Exit fullscreen mode

I also created a separate uninstaller utility:

pyinstaller --onefile --noconsole --icon=icons/uninstaller.ico --name uninstaller uninstaller.py
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

This makes it easy for anyone to download and install the app.

Release page:

https://github.com/TutorialsAndroid/Windows11Alert/releases/latest
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Download

You can download the latest Windows installer here:

https://github.com/TutorialsAndroid/Windows11Alert/releases/latest
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)