
告别眼疲劳!3分钟,教你自制一个“霸道”的Windows全屏休息提醒神器
无需安装任何软件,让你的电脑强制你休息,打工人必备!
嘿,各位打工人、奋斗者们!
你是不是也和我一样,每天对着电脑超过8小时,一投入工作就忘记了时间?等到回过神来,才发现眼睛干涩、脖子僵硬、腰酸背痛。
市面上的提醒软件要么太温柔容易被忽略,要么太复杂懒得去装。
今天,我就教大家一个终极方法,无需下载任何软件,只用Windows自带的功能,就能为自己打造一个“霸道”的全屏休息提醒神器!
到了时间,它会强制全屏,温柔地提醒你:“嘿,该休息啦!” 想忽略都难!
✨ 这个方法好在哪?
✅ 绝对纯净:无需安装任何第三方软件,不占系统资源。
✅ 完全免费:你的Windows系统已经包含了所有需要的功能。
✅ 高度定制:提醒文字、休息时长,一切由你决定!
✅ 一劳永逸:设置一次,每次开机自动运行。
话不多说,让我们开始吧!整个过程不超过3分钟,手把手教,包会!
第一步:创建你的“魔法咒语”脚本
别被“脚本”两个字吓到,它其实就是一个简单的文本文档,里面写着给电脑下达的指令。
在你的电脑桌面空白处,单击鼠标右键,选择 “新建” -> “文本文档”。
你会得到一个名为
新建文本文档.txt
的文件。请把它重命名为FullScreenReminder.ps1
。⚠️ 注意: 后缀名必须从
.txt
改为.ps1
。如果看不到后缀名,请在文件资源管理器的“查看”选项卡中,勾选“文件扩展名”。右键点击这个
FullScreenReminder.ps1
文件,选择 “编辑” (或者用记事本打开)。将下面这段代码 完整地 复制粘贴进去:
PowerShell
# 全屏强制休息提醒脚本 - 稳定版 V3.1
# ===================================================================
# --- ✨ 全新!超级个性化定制区 ✨ ---
# 1. 强制休息的总时长(秒)
$BreakDurationSeconds = 20
# 2. 背景设置 (三选一)
$UseDesktopWallpaper = $true
$BackgroundImagePath = ''
$SolidBackgroundColor = 'Black'
# 3. 文字内容设置
$Title = "🦉👀 强制休息时间!"
$MainMessage = "身体是革命的本钱,请好好放松一下"
$Suggestions = "深呼吸 · 远眺窗外 · 让眼睛放松一下"
# 4. 专业功能增强
$OverlayTransparency = 150
# --- 核心代码区 (下面这部分复制就行,无需改动) ---
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# 启用视觉样式
try {
[System.Windows.Forms.Application]::EnableVisualStyles()
[System.Windows.Forms.Application]::SetCompatibleTextRenderingDefault($false)
} catch {
# 忽略视觉样式设置错误
}
# 创建主窗口
$form = New-Object System.Windows.Forms.Form
$form.Text = $Title
$form.FormBorderStyle = 'None'
$form.WindowState = 'Maximized'
$form.TopMost = $true
$form.ShowInTaskbar = $false
# 安全地启用双缓冲
try {
$form.GetType().GetProperty('DoubleBuffered', [System.Reflection.BindingFlags]'NonPublic,Instance').SetValue($form, $true)
} catch {
# 如果双缓冲设置失败,继续执行
}
# --- 智能背景处理 ---
try {
if ($UseDesktopWallpaper) {
$wallpaperPath = (Get-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name Wallpaper -ErrorAction SilentlyContinue).Wallpaper
if ($wallpaperPath -and (Test-Path $wallpaperPath -ErrorAction SilentlyContinue)) {
$form.BackgroundImage = [System.Drawing.Image]::FromFile($wallpaperPath)
$form.BackgroundImageLayout = 'Stretch'
} else {
$form.BackColor = [System.Drawing.Color]::Black
}
} elseif (-not [string]::IsNullOrEmpty($BackgroundImagePath) -and (Test-Path $BackgroundImagePath -ErrorAction SilentlyContinue)) {
$form.BackgroundImage = [System.Drawing.Image]::FromFile($BackgroundImagePath)
$form.BackgroundImageLayout = 'Stretch'
} else {
$form.BackColor = [System.Drawing.Color]::Black
}
} catch {
$form.BackColor = [System.Drawing.Color]::Black
}
# 创建半透明遮罩层
$overlayPanel = New-Object System.Windows.Forms.Panel
$overlayPanel.Dock = 'Fill'
$overlayPanel.BackColor = [System.Drawing.Color]::FromArgb($OverlayTransparency, 0, 0, 0)
# 安全地为遮罩层启用双缓冲
try {
$overlayPanel.GetType().GetProperty('DoubleBuffered', [System.Reflection.BindingFlags]'NonPublic,Instance').SetValue($overlayPanel, $true)
} catch {
# 如果双缓冲设置失败,继续执行
}
$form.Controls.Add($overlayPanel)
# 创建核心显示标签
$label = New-Object System.Windows.Forms.Label
$label.Font = New-Object System.Drawing.Font('Microsoft YaHei', 24, [System.Drawing.FontStyle]::Bold)
$label.ForeColor = [System.Drawing.Color]::White
$label.BackColor = [System.Drawing.Color]::Transparent
$label.AutoSize = $false
$label.Dock = 'Fill'
$label.TextAlign = 'MiddleCenter'
# 安全地为标签启用双缓冲
try {
$label.GetType().GetProperty('DoubleBuffered', [System.Reflection.BindingFlags]'NonPublic,Instance').SetValue($label, $true)
} catch {
# 如果双缓冲设置失败,继续执行
}
$overlayPanel.Controls.Add($label)
# 剩余时间变量
$Script:remainingSeconds = $BreakDurationSeconds
# 创建更新文字的函数
function Update-CountdownText {
try {
$newText = "$MainMessage`n`n$Suggestions`n`n将在 $Script:remainingSeconds 秒后自动关闭..."
# 只有在文字真的改变时才更新
if ($label.Text -ne $newText) {
$label.Text = $newText
}
} catch {
# 如果更新失败,尝试简单更新
$label.Text = "休息时间:$Script:remainingSeconds 秒"
}
}
# 首次设置提醒文字
Update-CountdownText
# 创建计时器
$timer = New-Object System.Windows.Forms.Timer
$timer.Interval = 1000
# 计时器事件处理
$timer.Add_Tick({
try {
$Script:remainingSeconds--
Update-CountdownText
if ($Script:remainingSeconds -le 0) {
$timer.Stop()
$form.Close()
}
} catch {
# 如果计时器出错,强制关闭
$timer.Stop()
$form.Close()
}
})
# 窗体显示事件
$form.Add_Shown({
try {
$timer.Start()
} catch {
# 如果计时器启动失败,设置备用关闭方式
Start-Sleep -Seconds $BreakDurationSeconds
$form.Close()
}
})
# 窗体关闭事件,释放资源
$form.Add_FormClosed({
try {
if ($timer) {
$timer.Stop()
$timer.Dispose()
}
if ($form.BackgroundImage) {
$form.BackgroundImage.Dispose()
}
} catch {
# 忽略资源释放错误
}
})
# 禁用快捷键关闭
$form.Add_KeyDown({
if ($_.KeyCode -eq [System.Windows.Forms.Keys]::F4 -and $_.Alt) {
$_.Handled = $true
}
if ($_.KeyCode -eq [System.Windows.Forms.Keys]::Escape) {
$_.Handled = $true
}
})
# 显示窗体
try {
$result = $form.ShowDialog()
} catch {
Write-Host "窗体显示时出现错误: $($_.Exception.Message)"
} finally {
# 确保资源被释放
try {
if ($timer) { $timer.Dispose() }
if ($form) { $form.Dispose() }
} catch {
# 忽略最终清理错误
}
}
Write-Host "休息时间结束!"
自定义你的提醒! 在代码最上方的“个性化定制区”,你可以随意修改休息秒数、标题和提示文字,打造你的专属提醒。修改完毕后,保存并关闭文件。
至此,我们的“魔法咒语”就准备好了!
第二步:解除“封印”,让咒语生效
为了安全,Windows默认不允许直接运行这类脚本。我们需要进行一次性授权,解除“封印”。
点击左下角的“开始”按钮,直接输入
PowerShell
。在搜索结果中,右键点击 “Windows PowerShell”,选择 “以管理员身份运行”。
在弹出的蓝色窗口里,复制并粘贴以下命令,然后按回车:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
如果系统询问你,就输入字母
Y
,然后再次按回车确认。
搞定!这个操作只需进行一次,以后你的电脑就能运行自己写的脚本了。
第三步:召唤“时间精灵”,定时执行
最后一步,我们要告诉电脑,每隔多久就执行一次我们的“魔法咒语”。这需要用到Windows的“任务计划程序”。
按下键盘上的
Win + R
组合键,打开“运行”对话框。输入
taskschd.msc
并按回车,打开“任务计划程序”。在最右侧的“操作”栏中,点击 “创建基本任务...”。
名称: 填写一个你好记的名字,比如
我的护眼提醒
。然后点“下一步”。触发器: 选择 “当登录时”。这样每次开机登录后它都会自动准备好。点“下一步”。
操作: 选择 “启动程序”。点“下一步”。
最关键的一步来了!
在“程序或脚本”框中,输入:
powershell.exe
在“添加参数(可选)”框中,输入:
-ExecutionPolicy Bypass -File "你的脚本路径\FullScreenReminder.ps1"
⚠️ 请务必将 你的脚本路径 替换成你刚才保存脚本的真实、完整路径!
如何获取路径? 右键点击你的 FullScreenReminder.ps1 文件,选择“属性”,在“位置”一栏就能看到路径,复制过来再加上文件名即可。
举例: 如果你放在桌面,路径可能就是 "C:\Users\你的用户名\Desktop\FullScreenReminder.ps1" (别忘了带英文双引号)。
点击“下一步”,然后“完成”。
还没完,我们还要设置重复!
回到任务计划程序主界面,点击左侧的“任务计划程序库”,在中间找到你刚创建的
我的护眼提醒
任务,双击它。在弹出的属性窗口中,切换到 “触发器” 选项卡,然后双击列表里的“登录时”触发器。
在编辑窗口中,勾选 “重复任务间隔”,然后设置为你希望的频率,比如 “45分钟” 或 “1小时”。持续时间选择 “无限期”。
一路点击“确定”保存所有设置。
大功告成!🚀
从现在起,你的专属健康管家就已经正式上岗了。在你登录电脑后,它会默默为你计时。每当到达设定的时间,它就会“霸道”地占据你的整个屏幕,强制你停下手中的工作,眺望远方,活动身体。
这不仅是一个小工具,更是我们对健康的一份承诺。
快去试试吧!如果你觉得有用,别忘了分享给身边那个总在埋头苦干的朋友!github:https://github.com/laozhiy/FullScreen-Reminder