本文介绍了如何让MessageBox在PowerShell中的特定时间出现?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个使用消息框显示特定事件的闹钟。

使用提供的代码:

 [System.Windows.Forms.MessageBox]::Show("Do this task" , "Alert!")  


Do 
{ 
$waitMinutes = 1 
$startTime = get-date 
$endTime   = $startTime.addMinutes($waitMinutes) 
$timeSpan = new-timespan $startTime $endTime 
Start-Sleep $timeSpan.TotalSeconds 

# Play System Sound 
[system.media.systemsounds]::Exclamation.play() 
# Display Message 
Show-MessageBox Reminder "Do this task." 
} 

# Loop until 11pm 
Until ($startTime.hour -eq 23)

推荐答案

我认为使用事件而不是循环来完成此操作要酷得多。

[datetime]$alarmTime = "November 7, 2013 10:30:00 PM" 
$nowTime = get-date 
$tsSeconds = ($alarmTime - $nowTime).Seconds
$timeSpan = New-TimeSpan -Seconds $tsSeconds

$timer = New-Object System.Timers.Timer
Register-ObjectEvent -InputObject $timer -EventName Elapsed -Action { [System.Windows.Forms.MessageBox]::Show("Brush your Teeth" , "Alert!") }
$timer.Autoreset = $false 
$timer.Interval = $timeSpan.TotalMilliseconds
$timer.Enabled = $true

我真的没有心情给你写一个完整的解决方案,因为那是工作,我不在工作,但我认为在这里的所有答案中,你已经得到了你需要的一切。

我参考了此页面以获取上述方面的指导:

http://blogs.technet.com/b/heyscriptingguy/archive/2011/06/16/use-asynchronous-event-handling-in-powershell.aspx

这篇关于如何让MessageBox在PowerShell中的特定时间出现?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 23:33