System.Windows.Messagebox Timeout Powershell



我需要询问[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.ShellCOM对象。

$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。

相关内容

  • 没有找到相关文章