Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 任务栏上的批处理图标消息_Batch File_Vbscript - Fatal编程技术网

Batch file 任务栏上的批处理图标消息

Batch file 任务栏上的批处理图标消息,batch-file,vbscript,Batch File,Vbscript,是否可以制作一个批,或者.vbs(如果需要),是否可以使批在下面有一个带有标志、电池和音量的小图标 我希望它是一个“在xx分钟/小时内关闭”,然后单击它可以取消“关闭” 提前感谢:)好吧,我知道如何实现您想要的部分功能——借用PowerShell制作systray气球提示。但我不知道如何让它听到气球被击落的声音。也许其他人可以在我的基础上提供另一个答案 不管怎样,我用它来编写一个转换脚本,将flac批量转换为mp3。为了你自己的邪恶目的,请随意破解它 @echo关闭 setlocal 对于(*.

是否可以制作一个批,或者.vbs(如果需要),是否可以使批在下面有一个带有标志、电池和音量的小图标

我希望它是一个“在xx分钟/小时内关闭”,然后单击它可以取消“关闭”


提前感谢:)

好吧,我知道如何实现您想要的部分功能——借用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)