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

推荐订阅源

L
LINUX DO - 最新话题
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
T
Tenable Blog
T
Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
Google Online Security Blog
Google Online Security Blog
SecWiki News
SecWiki News
P
Palo Alto Networks Blog
TaoSecurity Blog
TaoSecurity Blog
Webroot Blog
Webroot Blog
Spread Privacy
Spread Privacy
O
OpenAI News
The Last Watchdog
The Last Watchdog
P
Proofpoint News Feed
C
Check Point Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
人人都是产品经理
人人都是产品经理
S
Security @ Cisco Blogs
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
月光博客
月光博客
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
T
Troy Hunt's Blog
W
WeLiveSecurity
GbyAI
GbyAI
N
News | PayPal Newsroom
Y
Y Combinator Blog
C
Cisco Blogs
H
Help Net Security
The GitHub Blog
The GitHub Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 【当耐特】
Jina AI
Jina AI
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
小众软件
小众软件
N
News and Events Feed by Topic

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 Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
I Built Windows11Alert — A Windows Utility That Sends Telegram Alerts When My PC Turns On
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.