惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
DataBreaches.Net
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
IT之家
IT之家
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
月光博客
月光博客
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
腾讯CDC
B
Blog RSS Feed
博客园 - Franky
爱范儿
爱范儿

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I Built Windows11Alert — A Windows Utility That Sends Tel...
Akshay · 2026-05-18 · via DEV Community

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.