You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写PowerShell脚本实现弹窗提醒定时关应用、支持会话延长

PowerShell 应用自动关闭提醒脚本实现

以下是可直接运行的完整脚本,匹配你需要的15分钟倒计时提醒、支持延长会话、超时自动关闭应用的需求:

# 加载WPF程序集用于弹出消息框
Add-Type -AssemblyName PresentationCore,PresentationFramework

# 配置参数,可根据需求修改
$targetProcess = "Notepad"  # 目标应用进程名
$waitMinutes = 15           # 倒计时关闭时长(分钟)
$MessageBody = "提示:$targetProcess 应用将在 $waitMinutes 分钟后自动关闭,是否需要延长会话?"
$MessageTitle = "应用自动关闭提醒"
$ButtonType = [System.Windows.MessageBoxButton]::YesNoCancel
$MessageIcon = [System.Windows.MessageBoxImage]::Warning

# 弹出消息框获取用户选择
$Result = [System.Windows.MessageBox]::Show($MessageBody, $MessageTitle, $ButtonType, $MessageIcon)
Write-Host "用户选择:$Result"

# 根据用户选择执行对应逻辑
switch ($Result) {
    # 用户选择延长会话:等待设定时长后触发下一轮提醒
    "Yes" {
        Write-Host "已延长会话,下一次提醒将在$waitMinutes分钟后触发"
        Start-Sleep -Seconds ($waitMinutes * 60)
        & $MyInvocation.MyCommand.Path
    }
    # 用户选择立即关闭:直接终止目标应用进程
    "No" {
        Write-Host "正在关闭$targetProcess 进程"
        Get-Process $targetProcess -ErrorAction SilentlyContinue | Foreach-Object { $_.CloseMainWindow() | Out-Null }
    }
    # 用户点击取消/关闭弹窗:倒计时结束后自动关闭应用
    "Cancel" {
        Write-Host "将在$waitMinutes分钟后关闭$targetProcess 进程"
        Start-Sleep -Seconds ($waitMinutes * 60)
        Get-Process $targetProcess -ErrorAction SilentlyContinue | Foreach-Object { $_.CloseMainWindow() | Out-Null }
    }
}
自定义修改指引
  • 修改目标管控应用:将$targetProcess = "Notepad"中的Notepad替换为对应应用的进程名,可在任务管理器「详细信息」页查看进程的exe名称(不需要加.exe后缀)
  • 修改倒计时时长:调整$waitMinutes = 15的数值即可,单位为分钟
  • 修改弹窗提示内容:直接修改$MessageBody和$MessageTitle的文本内容即可
功能说明
  • 脚本运行后会先弹出提示框,告知用户应用即将关闭的时间
  • 选择「是」则延长会话,等待设定时长后会再次弹出提醒
  • 选择「否」会立即关闭对应应用的所有运行进程
  • 选择「取消」或者直接关闭弹窗,脚本会等待设定的时长后自动关闭对应应用

内容的提问来源于stack exchange,提问作者NotWorkingAgain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:36:01