标题: [系统相关] [已解决]批处理shutdown 命令,能否显示倒计时窗口? [打印本页]
作者: jszw666 时间: 2023-8-12 19:20 标题: [已解决]批处理shutdown 命令,能否显示倒计时窗口?
本帖最后由 jszw666 于 2023-8-15 10:48 编辑
win10下,shutdown 命令后,能不能,一直显示一个, 倒计时 的窗口 ?
或者托盘有个提示,也好。
感谢指教,谢谢!
作者: Nsqs 时间: 2023-8-13 03:31
本帖最后由 Nsqs 于 2023-8-13 15:22 编辑
- using namespace System.Windows.Forms
- using namespace System.Drawing
- param([int]$Seconds=-1)
- [Application]::EnableVisualStyles()
- if($Seconds -eq -1){exit}
- (('410fad640fad640fad2d0fad540fad790fad700fad650fad200fad270fad750fad730fad690fad6e0fad670fad200fad530fad790fad730fad740fad650fad6d0fad2e0fad520fad750fad6e0fad740fad690fad6d0fad650fad2e0fad490fad6e0fad740fad650fad720fad6f0fad700fad530fad650fad720fad760fad690fad630fad650fad730fad3b0fad700fad750fad620fad6c0fad690fad630fad200fad630fad6c0fad610fad730fad730fad200fad4d0fad730fad670fad540fad690fad6d0fad650fad6f0fad750fad740fad7b0fad5b0fad440fad6c0fad6c0fad490fad6d0fad700fad6f0fad720fad740fad280fad220fad750fad730fad650fad720fad330fad320fad220fad290fad5d0fad700fad750fad620fad6c0fad690fad630fad200fad730fad740fad610fad740fad690fad630fad200fad650fad780fad740fad650fad720fad6e0fad200fad690fad6e0fad740fad200fad4d0fad650fad730fad730fad610fad670fad650fad420fad6f0fad780fad540fad690fad6d0fad650fad6f0fad750fad740fad280fad690fad6e0fad740fad200fad680fad770fad6e0fad640fad2c0fad200fad730fad740fad720fad690fad6e0fad670fad200fad6e0fad490fad6e0fad640fad650fad780fad2c0fad730fad740fad720fad690fad6e0fad670fad200fad6c0fad700fad430fad610fad700fad740fad690fad6f0fad6e0fad2c0fad690fad6e0fad740fad200fad770fad540fad790fad700fad650fad2c0fad690fad6e0fad740fad200fad770fad6c0fad610fad6e0fad670fad650fad2c0fad690fad6e0fad740fad200fad640fad770fad540fad690fad6d0fad650fad6f0fad750fad740fad290fad3b0fad7d0fad270fad3b0fad240fad700fad610fad740fad680fad3d0fad5b0fad530fad790fad730fad740fad650fad6d0fad2e0fad490fad4f0fad2e0fad460fad690fad6c0fad650fad690fad6e0fad660fad6f0fad5d0fad3a0fad3a0fad6e0fad650fad770fad280fad240fad4d0fad790fad490fad6e0fad760fad6f0fad630fad610fad740fad690fad6f0fad6e0fad2e0fad4d0fad790fad430fad6f0fad6d0fad6d0fad610fad6e0fad640fad2e0fad4e0fad610fad6d0fad650fad290fad2e0fad420fad610fad730fad650fad4e0fad610fad6d0fad650fad3b0fad240fad6d0fad730fad670fad3d0fad5b0fad4d0fad690fad630fad720fad6f0fad730fad6f0fad660fad740fad2e0fad560fad690fad730fad750fad610fad6c0fad420fad610fad730fad690fad630fad2e0fad490fad6e0fad740fad650fad720fad610fad630fad740fad690fad6f0fad6e0fad5d0fad3a0fad3a0fad4d0fad730fad670fad420fad6f0fad780fad280fad270fad8bf70fad74060fad89e30fad4e000fad4e0b0fad52b30fad52a80fad4eba0fad6c110fad76840fad8f9b0fad82e60fad210fad200fad510fad510fad3a0fad380fad320fad330fad370fad370fad370fad390fad320fad310fad200fad4f600fad613f0fad610f0fad652f0fad63010fad4f5c0fad80050fad54170fad3f0fad270fad2c0fad340fad380fad2b0fad340fad2c0fad240fad700fad610fad740fad680fad290fad3b0fad5b0fad760fad6f0fad690fad640fad5d0fad400fad280fad690fad660fad280fad240fad6d0fad730fad670fad200fad2d0fad650fad710fad200fad360fad290fad7b0fad5b0fad4d0fad690fad630fad720fad6f0fad730fad6f0fad660fad740fad2e0fad560fad690fad730fad750fad610fad6c0fad420fad610fad730fad690fad630fad2e0fad490fad6e0fad740fad650fad720fad610fad630fad740fad690fad6f0fad6e0fad5d0fad3a0fad3a0fad4d0fad730fad670fad420fad6f0fad780fad280fad270fad611f0fad8c220fad60a80fad76840fad652f0fad63010fad210fad270fad2c0fad300fad2c0fad240fad700fad610fad740fad680fad290fad7d0fad650fad6c0fad730fad650fad7b0fad5b0fad4d0fad730fad670fad540fad690fad6d0fad650fad6f0fad750fad740fad5d0fad3a0fad3a0fad4d0fad650fad730fad730fad610fad670fad650fad420fad6f0fad780fad540fad690fad6d0fad650fad6f0fad750fad740fad280fad280fad280fad670fad700fad730fad200fad2d0fad690fad640fad200fad240fad700fad690fad640fad290fad2e0fad4d0fad610fad690fad6e0fad570fad690fad6e0fad640fad6f0fad770fad480fad610fad6e0fad640fad6c0fad650fad290fad2c0fad200fad220fad611f0fad8c220fad4f600fad76840fad4e0d0fad652f0fad63010fad2e0fad2e0fad2e0fad380fad380fad360fad220fad2c0fad200fad240fad700fad610fad740fad680fad2c0fad200fad300fad2c0fad200fad300fad2c0fad200fad330fad300fad300fad300fad290fad3b0fad650fad780fad690fad740fad7d0fad29' -split '0fsd|3we|ckb|psfw|0fad'|%{try{$x=$_;[char][int]('0x{0}' -f $_)}catch{[int]('0x{0}' -f $x)}}) -join '')|iex
- if($Seconds -eq 0){shutdown -a -f -t 0}
- Add-Type -AssemblyName System.Windows.Forms
- function Quit{
- $Timer.Stop()
- $CountDown.Stop()
- $Form.Dispose()
- }
- function SetColor-ExitButton{
- param([KnownColor]$Color)
- $Pen=[Pen]::new([Color]::$Color)
- $StartPoint=[PointF]@{X=$ExitButton.Width-3;Y=$ExitButton.Height-3}
- $EndPoint=[PointF]@{X=3;Y=3}
- $g.DrawLine($Pen,$StartPoint,$EndPoint)
- $StartPoint=[PointF]@{X=$ExitButton.Width-3;Y=3}
- $EndPoint=[PointF]@{X=3;Y=$ExitButton.Height-3}
- $g.DrawLine($Pen,$StartPoint,$EndPoint)
- $Rect=[Rectangle]::new(0,0,$ExitButton.Width-1,$ExitButton.Height-1)
- $g.DrawRectangle($Pen,$Rect)
- }
- [bool]$Global:Enter=$false
- [bool]$Global:Leave=$true
- $CountDown=[System.Diagnostics.Stopwatch]::new()
- $Timer=[Timer]::new()
- $Timer.Interval=1
- $Screen=[Screen]::PrimaryScreen.WorkingArea
- $Form=[Form]::new()
- $Form=[Form]@{
- StartPosition=0
- Size=[Size]::new(100,50)
- FormBorderStyle=0
- }
- $ExitButton=[Button]::new()
- $ExitButton.Size=[Size]::new(15,15)
- $TimeLabel=[Label]::new()
- $TitleLabel=[Label]@{
- ForeColor=[Color]::Red
- Font =[Font]::new('幼圆',12)
- Text='剩余时间'
- AutoSize=0
- Height=20
- }
- [Graphics]$g=$Form.CreateGraphics()
- $TextWidth=$g.MeasureString($TitleLabel.Text,$TitleLabel.Font)
- $Point=[Point]::new(($Form.Width-$TextWidth.Width)/2,($Form.Height-$TextWidth.Height)/2-15)
- $TitleLabel.Location=$Point
- $TimeLabel=[Label]@{
- ForeColor=[Color]::FromArgb(100,100,100)
- Font=[Font]::new('幼圆',11)
- Text='00:00:00.00'
- }
- $TextWidth=$g.MeasureString($TimeLabel.Text,$TimeLabel.Font)
- $Point=[Point]::new(($Form.Width-$TextWidth.Width)/2,($Form.Height-$TextWidth.Height)/2+3)
- $TimeLabel.Location=$Point
-
- $Form.Add_Activated{
- $Form.Location=[Point]::new($Screen.Width-$Form.Width,$Screen.Height-$Form.Height)
- $ExitButton.Location=[Point]::new($Form.Width-$ExitButton.Width,0)
- $Timer.Start()
- $CountDown.Start()
- }
-
- $Form.Add_Disposed{
- Quit
- }
-
- $Timer.Add_Tick{
- $TimeLabel.Text=[timespan]::FromSeconds($Seconds-$CountDown.Elapsed.TotalSeconds).ToString('hh\:mm\:ss\.ff')
- if($CountDown.Elapsed.TotalSeconds -ge $Seconds){
- shutdown -s -f -t 0 #关机
- Quit
- }
- }
-
- $ExitButton.Add_Click{
- Quit
- }
-
- $ExitButton.Add_MouseEnter{
- $Global:Enter=$true
- $Global:Leave=$false
- }
-
- $ExitButton.Add_MouseLeave{
- $Global:Enter=$false
- $Global:Leave=$true
- }
-
- $ExitButton.Add_Paint{
- param($sender,[PaintEventArgs]$Paint)
- [Graphics]$g=$Paint.Graphics
- $g.Clear($Form.BackColor)
- if($Leave){
- SetColor-ExitButton Black
- }else{
- SetColor-ExitButton Red
- }
- }
-
- $Form.Controls.AddRange(($ExitButton,$TitleLabel,$TimeLabel))
- [void]$Form.ShowDialog()
复制代码
给你做了一个
使用方法:
1.以上代码保存为PowerShell脚本文件
2.改名为StopComputer.ps1
3.然后丢到C:\Windows\System32文件夹下
4.打开运行或PowerShell、cmd都行,
5.最后直接在命令行下输入代码:- start {powershell} {-ExecutionPolicy ByPass "StopComputer" -Seconds 300} -WindowStyle Hidden
复制代码
参数-Seconds 是倒计时(单位:秒)
设置多少自己决定
1、2、3、4条要是都不会自己操作,那就算了
作者: wanghan519 时间: 2023-8-13 04:04
有个powershell模块叫anybox,挺好玩的- if((Show-AnyBox -Buttons 取消 -Timeout 7 -Countdown -Message 即将关闭).TimedOut){shutdown}
复制代码
作者: jszw666 时间: 2023-8-13 12:58
首先,万分感谢您,辛辛苦苦写了这么长,为您的付出,表示敬意!感谢!
我马上按照您的指导,保存、存放、测试。不管结果如何,您的诚意和付出,是我学习的榜样!
大咖您辛苦了!
作者: jszw666 时间: 2023-8-13 13:01
回复 2# Nsqs
首先,万分感谢您,辛辛苦苦写了这么长,为您的付出,表示敬意!感谢!
我马上按照您的指导,保存、存放、测试。不管结果如何,您的诚意和付出,是我学习的榜样!
大咖您辛苦了!
作者: jszw666 时间: 2023-8-13 14:29
本帖最后由 jszw666 于 2023-8-13 14:53 编辑
回复 2# Nsqs
大神,管理员PowerShell 运行了,没能成功。。。想 发图片,可是,48K图片,符合要求,上传失败。
弹出 StopComputer 窗口提示:感谢你的不支持....886
右键:使用powershell运行 StopComputer.ps1 ,结果提示,同上;
如果直接 贴在 cmd 中,提示:windows 找不到 {powershell}。
作者: Nsqs 时间: 2023-8-13 15:00
本帖最后由 Nsqs 于 2023-8-13 15:04 编辑
StopComputer.ps1,不过是一个命令,不是直接双击运行的,需要在PowerShell里输入代码- start {powershell} {-ExecutionPolicy ByPass "StopComputer" -Seconds 300} -WindowStyle Hidden
复制代码
通过这个代码来调用StopComputer,直接双击执行不了,另外重新更新了一下参数逻辑,会看起来更合理一点
作者: jszw666 时间: 2023-8-13 19:52
回复 7# Nsqs
给大神详细汇报操作过程:
01、复制大神的 106行代码,8-13 15:22 编辑 过的;
02、粘贴到 记事本 ,另存为:编码ANSI,名称+后缀 StopComputer.ps1;
03、复制代码
start {powershell} {-ExecutionPolicy ByPass "StopComputer" -Seconds 300} -WindowStyle Hidden
粘贴到记事本,备用;
04、复制文件 StopComputer.ps1 ,粘贴到 C:\Windows\System32 目录下;
05、复制大神 300秒的 这行代码;
06、开始 →→ windows PowerShell →→ 右击 windows PowerShell ,管理员运行 →→ ctrl+v
windows PowerShell 窗口中显示了 大神的命令:
start {powershell} {-ExecutionPolicy ByPass "StopComputer" -Seconds 300} -WindowStyle Hidden
07、回车;
08、弹出 StopComputer 窗口提示,很快自动退出了:
“感谢你的不支持....886”
我,感觉是 没成功 。
09、shutdown /a ,提示:没有任何进行中的关机过程,无法终止系统关机。
大神费心了,辛苦了!请大咖明示,我执行后结果报错。错哪个步骤呢?
作者: Nsqs 时间: 2023-8-13 20:48
本帖最后由 Nsqs 于 2023-8-13 20:52 编辑
回复 Nsqs
给大神详细汇报操作过程:
01、复制大神的 106行代码,8-13 15:22 编辑 过的;
02、粘贴 ...
jszw666 发表于 2023-8-13 19:52
- start {powershell} {-ExecutionPolicy ByPass "StopComputer" -Seconds 300} -WindowStyle Hidden
复制代码
这段代码是单独用的哦,不能和2楼代码合起来用的,你检查一下
另外还有一种排错办法
如果你的StopComputer.ps1 已经放在system32下了,那么用下面代码测试一下效果- StopComputer -Seconds 300
复制代码
如果这个时候正常运行,能显示倒计时,那么就对了,另外我代码下午的时候更新过在2楼
作者: jszw666 时间: 2023-8-13 22:45
回复 9# Nsqs
01、两段代码,必须单独使用,我是知道的。要不然,也不会是 两段 了;
02、106行代码,我就是重新复制的,你更新过的。
”本帖最后由 Nsqs 于 2023-8-13 15:22 编辑“
03、StopComputer -Seconds 300 命令后,提示:
StopComputer : 无法加载文件 C:\Windows\system32\StopComputer.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ StopComputer -Seconds 300
04、start {powershell} {-ExecutionPolicy ByPass "StopComputer" -Seconds 300} -WindowStyle Hidden
运行后,还是原来的结果:感谢你的不支持....886
在您的 引领 下,我再自己慢慢琢磨琢磨,学习学习吧。不能总是 麻烦你 没完没了的 。
虽然,由于我自身的原因,这个问题,现在还没有完全解决,但,小白在此还是:
真诚的感谢 大咖 Nsqs 您的热心、专业的引领、指导!再次表示 衷心感谢 !
作者: Nsqs 时间: 2023-8-14 00:15
回复 Nsqs
01、两段代码,必须单独使用,我是知道的。要不然,也不会是 两段 了;
02、106行代码,我 ...
jszw666 发表于 2023-8-13 22:45
你这个是因为你电脑禁用了PowerShell
在管理员权限下用PowerShell 运行下面这段代码- Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
复制代码
作者: 帝尊 时间: 2023-8-15 12:03
直接运行批处理文件可以吗?- @echo off
- title 关闭计算机
- echo 计算机将在5分钟后关闭,请确保您尽快保存重要文件。
- timeout /t 300
- shutdown /s /t 1
复制代码
作者: mzzyb 时间: 2023-8-15 15:40
我也用过,shutdown命令定时关电脑,一般电脑系统自带提醒,win10会在关机前10分钟提醒你,win7会在关机前5分钟还是3分钟提醒,是弹窗的那种,我猜想可以在哪里细节设置一下
作者: BingjianREMIX 时间: 2023-8-15 17:12
回复 13# mzzyb
干脆一点做一个定时器
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |