System.Windows.Messagebox Timeout Powershell - PullRequest
       39

System.Windows.Messagebox Timeout Powershell

0 голосов
/ 06 февраля 2019

Мне нужно спросить об таймауте с [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:\Nuevacarpeta\Nueva carpeta\token.txt"
#Ejecutamos la funcion de Token para saber si existe ahora mismo
$ftoken = Token
#Preparamos la ruta del log
$log = "D:\Nuevacarpeta\log\log.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] :: Show ("BORRADO TOKEN") - [System.Windows.MessageBox] :: Show ("No hacemos nada, esperamos")

Это сообщение является только информативным, и я хочу показать и закрыть его через 5 минут после появления на экране

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете использовать 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Кнопки OK и Отмена.
2 Кнопки «Отмена», «Повторить» и «Игнорировать».
3 Кнопки «Да», «Нет» и «Отмена».
4 Кнопки «Да» и «Нет».
5 Кнопки «Повторить» и «Отмена».

Типы значков
Значение Описание
16 Значок «Стоп».
32 Значок «Вопросительный знак».
48 Значок «Восклицательный знак».
64 «Информационный знак»" значок.

Возможные значения для IntButton возвращаемое значение:

Значение Описание
1 Кнопка OK
2 Кнопка отмены
3 Кнопка отмены
4 Кнопка повтора
5 Кнопка игнорирования
6 Кнопка «Да»
7 Кнопка «Нет»

Если пользователь не нажимает кнопку до того, как для nSecondsToWait intButton установлено значение -1. ​​

...