我需要询问[System.Windows.MessageBox]的超时问题,代码是下一个:
"logX"(如log1、log2或log3)是在文件中写入的函数,只更改log3。Log3在写入后执行"退出"(离开脚本)。我们不需要如何工作这个功能
#Funcion para comprobar si existe el token o no.
function Token{
#comprobamos si existe el fichero
$token = Test-Path $dir_token
if($token -eq $True){
#Existe el fichero
$ftoken = 1
}else{
#No existe el fichero
$ftoken = 0
}
return $ftoken
}
#Asignamos dirección de token
$Global:dir_token = "D:NuevacarpetaNueva carpetatoken.txt"
#Ejecutamos la funcion de Token para saber si existe ahora mismo
$ftoken = Token
#Preparamos la ruta del log
$log = "D:Nuevacarpetaloglog.txt"
#Creamos la variable Outlook transformandolo en un objeto (Commobject de Powershell)
$Global:outlook = New-Object -comobject outlook.application
$comprobaroutlook = Get-variable -name outlook
$valueoutlook = $comprobaroutlook.Value
if($valueoutlook.Equals("")){
$msgBoxInput = [System.Windows.MessageBox]::Show('Outlook no se puede tratar, SCRIPT FAIL, para Borrar token y continuar con la ejecución pulsa SI, para no borrar el token e ignorar este mensaje pulse NO','ERROR CRITICO SCRIPT','YesNo','Error')
switch ($msgBoxInput) {
'Yes' {
## Do something
Remove-Item -Path $dir_token
[System.Windows.MessageBox]::Show("BORRADO TOKEN")
Log3("Borrado token, proxima ejecución sera correcta")
}
'No' {
## Do something
[System.Windows.MessageBox]::Show("No hacemos nada, esperamos")
Log3("No tiene contenido la variable outlook")
}
}
}elseif($ftoken -eq 1){
$msgBoxIn = [System.Windows.MessageBox]::Show('Outlook no se puede tratar, SCRIPT FAIL, para Borrar token y continuar con la ejecución pulsa SI, para no borrar el token e ignorar este mensaje pulse NO','ERROR CRITICO SCRIPT','YesNo','Error')
switch ($msgBoxIn) {
'Yes' {
## Do something
Remove-Item -Path $dir_token
[System.Windows.MessageBox]::Show("BORRADO TOKEN")
Log3("Borrado token, proxima ejecución sera correcta")
}
'No' {
## Do something
[System.Windows.MessageBox]::Show("No hacemos nada, esperamos")
Log3("Existe Token")
}
}
}else{
New-Item -Path $dir_token -ItemType File
}
我询问有关此通道的超时:
-[System.Windows.MessageBox]::显示("BORRADO TOKEN")-[System.Windows.MessageBox]::显示("No hacemos nada,esperamos")
这条消息只是提供信息,我想在弹出屏幕5分钟后显示并关闭它
您可以使用Wscript.Shell
COM对象。
$sh = New-Object -ComObject "Wscript.Shell"
$intButton = $sh.Popup("Testing",2,"Title",0+64)
从这里:
语法
intButton = objShell.Popup(strText,[nSecondsToWait],[strTitle],[nType])
参数
objShell
:WScript.Shell对象
strText
:包含您想要的文本的字符串值显得在弹出消息框中。
nSecondsToWait
:显示弹出窗口的最大时间长度消息框(以秒为单位,可选,默认值=无限)
strTitle
:标题文本字符串,可选。
nType
:按钮和图标的类型(数字,可选)这些决定了如何使用消息框。
IntButton
:按钮编号(整数值)这是当用户确定消息框时返回的值。
nType
的含义是通过组合2下表:按钮类型
值描述
0"确定"按钮
1"确定"one_answers"取消"按钮
2"中止"、"重试"one_answers"忽略"按钮
3"是"、"否"one_answers"取消"按钮
4个"是"one_answers"否"按钮
5"重试"one_answers"取消"按钮。图标类型
值描述
16"停止标记"图标
32"问号"图标
48"感叹号"图标
64"信息标记"图标。
IntButton
的可能值返回值:值描述
1 OK按钮
2 Cancel按钮
3 Abort按钮
4 Retry按钮
5 Ignore按钮
16 Yes按钮
7 No按钮如果用户在nScondsToWait intButton为设置为-1。