Batch file 任务栏上的批处理图标消息
是否可以制作一个批,或者.vbs(如果需要),是否可以使批在下面有一个带有标志、电池和音量的小图标 我希望它是一个“在xx分钟/小时内关闭”,然后单击它可以取消“关闭”Batch file 任务栏上的批处理图标消息,batch-file,vbscript,Batch File,Vbscript,是否可以制作一个批,或者.vbs(如果需要),是否可以使批在下面有一个带有标志、电池和音量的小图标 我希望它是一个“在xx分钟/小时内关闭”,然后单击它可以取消“关闭” 提前感谢:)好吧,我知道如何实现您想要的部分功能——借用PowerShell制作systray气球提示。但我不知道如何让它听到气球被击落的声音。也许其他人可以在我的基础上提供另一个答案 不管怎样,我用它来编写一个转换脚本,将flac批量转换为mp3。为了你自己的邪恶目的,请随意破解它 @echo关闭 setlocal 对于(*.
提前感谢:)好吧,我知道如何实现您想要的部分功能——借用PowerShell制作systray气球提示。但我不知道如何让它听到气球被击落的声音。也许其他人可以在我的基础上提供另一个答案 不管怎样,我用它来编写一个转换脚本,将flac批量转换为mp3。为了你自己的邪恶目的,请随意破解它
@echo关闭
setlocal
对于(*.flac)中的%%I,请执行以下操作(
rem//这将启动systray气球。
调用:systray从“%%~nxI”转换为“%%~nI.mp3”
)
后藤:EOF
rem//下面是:systray函数
:systray
延迟扩展
设置“args=%*”
设置“args=!args:”=“”
set“code=“[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')^
$o=新对象Windows.Forms.NotifyIcon$o、 图标=“%systemroot%\System32\PerfCenterCpl.ico”^
$o.ballotipicon='Info'$o、 气球文本='!args$o、 BalloodTiptItle='%~nx0'$o、 可见=1^
$o.0(10000);开始睡眠-M 12000$o、 处置();退出“”
启动/b“powershell”%code%
endlocal和goto:EOF
$o.showBallootTip(
n1)
和Start Sleep-M
n2中的n值以毫秒为单位。根据口味加盐
更新:我发现了一点关于为
$o.balloottipclicked
注册事件的信息,以及一个。基本上,将其替换为:
$o.showBallootTip(10000);开始睡眠-M 12000$o、 处置();出口
。。。为此:
$o.showBallootTip(10000);register objectevent$o balloottipclicked clicked clicked^
if(wait event clicked-t12){$true}else{$false}$o、 处置();出口
您还需要在单线程单元中执行powershell
,事件才能正常工作
start/b”““powershell”-STA%code%
现在,您需要弄清楚如何在批处理过程的上下文中使其相关。首先,您可能不再能够使用start/b
使气球顶端无阻塞,您可能会使用For/F
循环捕获powershell
命令的输出
让你更担心的是,我建议“在xx分钟内关机”并不完全方便用户。如果“30分钟后关机”出现在29分钟前,但用户刚才看到了怎么办?“上午9:51关机”可能更好
因此,考虑到所有这些,因为您想要的是事件驱动的,而且批处理语言不能那么容易地处理日期-时间数学,所以我建议在PowerShell中完成这一切。使用.ps1
扩展名保存此文件。右键单击并使用PowerShell运行。或者,如果要从cmd
控制台执行它,请执行powershell.\scriptname.ps1“
set executionpolicy remotesigned
if([threading.thread]::CurrentThread.GetApartmentState()-eq“MTA”){
&powershell.exe-最小化窗口-sta$MyInvocation.MyCommand.Definition
出口
}
[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'))
$minutes=30
$launch_time=(Get Date).AddMinutes($minutes).ToSortTimeString()
$o=新对象Windows.Forms.NotifyIcon
$o.Icon=“$env:SystemRoot\System32\PerfCenterCpl.ico”
$o.balloottipicon=“信息”
$o.BalloadTiptExt=“在$launch\u时间关闭”
$o.BalloodTiptitle=“关机挂起…”
$o.Visible=1
函数show balloon{$o.showBallootTip($minutes*60*1000)}
展示气球
$o_hover=[Windows.Forms.MouseEventHandler]{show balloon}
$o.add\u MouseMove($o\u hover)
注册对象事件$o BallootTipClick已单击
如果(单击等待事件-t($minutes*60)){
删除已单击的事件
$o.BalloodTiptext=“祝您有愉快的一天!”
$o.tiptitle=“关机中止”
$o.showballoptip(10000)
如果(单击等待事件-t10){单击移除事件}
}否则{
#在我的标记上启动关机序列。授权rojo alpha 3。标记。
停止计算机
}
已单击取消注册事件
$o.Dispose()
比尔·斯图尔特,如果你读到这篇文章,我知道你很高兴。碰巧,PowerShell确实是这次工作的正确工具。好吧,我知道如何实现您想要的部分功能——借用PowerShell制作systray气球提示。但我不知道如何让它听到气球被击落的声音。也许其他人可以在我的基础上提供另一个答案 不管怎样,我用它来编写一个转换脚本,将flac批量转换为mp3。为了你自己的邪恶目的,请随意破解它
@echo关闭
setlocal
对于(*.flac)中的%%I,请执行以下操作(
rem//这将启动systray气球。
调用:systray从“%%~nxI”转换为“%%~nI.mp3”
)
后藤:EOF
rem//下面是:systray函数
:systray
延迟扩展
设置“args=%*”
设置“args=!args:”=“”
set“code=“[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')^
$o=新对象Windows.Forms.NotifyIcon$o、 图标=“%systemroot%\System32\PerfCenterCpl.ico”^
$o.ballotipicon='Info'$o、 气球文本='!args$o、 BalloodTiptItle='%~nx0'$o、 可见=1^
$o.0(10000);开始睡眠-M 12000$o、 处置();退出“”
启动/b“powershell”%code%
endlocal和goto:EOF
$o.showBallootTip(
n1)
和Start Sleep-M
n2中的n值以毫秒为单位。根据口味加盐
更新:我发现了一点关于为
$o.balloottipclicked
注册事件的信息,以及一个。基本上,将其替换为:
$o.showBallootTip(10000);开始睡眠-M 12000$o、 处置();出口
。。。为此:
$o.showBallootTip(10000);register objectevent$o balloottipclicked clicked clicked^
if(w)