Hallo zusammen,
ich habe eine Funktion mit der ich Messageboxen anzeigen lassen kann.
Nun möchte ich aber den angezeigten Text in einem gewissen Zeitabstand (1 Sekunde) updaten.
Hat einer eine Idee? Hier mal mein Ansatz (Sorry bin noch in der Lernphase...)
function Show-DialogBox {<# .SYNOPSIS Display a custom dialog box with optional title, buttons, icon and timeout. Show-InstallationPrompt is recommended over this function as it provides more customization and uses consistent branding with the other UI components. .DESCRIPTION Display a custom dialog box with optional title, buttons, icon and timeout. The default button is "OK", the default Icon is "None", and the default Timeout is none. .PARAMETER Text Text in the message dialog box .PARAMETER Title Title of the message dialog box .PARAMETER Buttons Buttons to be included on the dialog box. Options: OK, OKCancel, AbortReTryIgnore, YesNoCancel, YesNo, ReTryCancel, CancelTryAgainContinue. Default: OK. .PARAMETER DefaultButton The Default button that is selected. Options: First, Second, Third. Default: First. .PARAMETER Icon Icon to display on the dialog box. Options: None, Stop, Question, Exclamation, Information. Default: None. .PARAMETER Timeout Timeout period in seconds before automatically closing the dialog box with the return message "Timeout". Default: UI timeout value set in the config XML file. .PARAMETER TopMost Specifies whether the message box is a system modal message box and appears in a topmost window. Default: $True. .EXAMPLE Show-DialogBox -Title "Installed Complete" -Text "Installation has completed. Please click OK and restart your computer." -Icon "Information" .EXAMPLE Show-DialogBox -Title "Installation Notice" -Text "Installation will take approximately 30 minutes. Do you wish to proceed?" -Buttons "OKCancel" -DefaultButton "Second" -Icon "Exclamation" -Timeout 600 Show-DialogBox -Title "Installed Complete" -Text "Installation has completed. Please click OK and restart your computer." -Icon "Information" Show-DialogBox -Title "Installation Notice" -Text "Installation will take approximately 30 minutes. Do you wish to proceed?" -Buttons "OKCancel" -DefaultButton "Second" -Icon "Exclamation" -Timeout 600 .NOTES .LINK http://psappdeploytoolkit.codeplex.com #> #region Parameters [CmdletBinding()] param( [ValidateNotNullorEmpty()] [String]$Title, [ValidateNotNullorEmpty()] [String]$Text, [ValidateSet("OK", "OKCancel", "AbortReTryIgnore", "YesNoCancel", "YesNo", "ReTryCancel", "CancelTryAgainContinue")] [String]$Button = "OK", [ValidateSet("First", "Second", "Third")] [String]$DefaultButton = "First", [ValidateSet("Exclamation", "Information", "None", "Stop", "Question")] [String]$Icon = "Information", [ValidateRange(0,100000)] [Int]$Timeout = 0, [Switch]$TopMost = $True ) #endregion Parameters begin {} process { try { #create the COM Object $Shell = New-Object -ComObject "WScript.Shell" $DialogButtons = @{ "OK" = 0"OKCancel" = 1"AbortReTryIgnore" = 2"YesNoCancel" = 3"YesNo" = 4"ReTryCancel" = 5"CancelTryAgainContinue" = 6 } $DialogIcons = @{ "None" = 0"Stop" = 16"Question" = 32"Exclamation" = 48"Information" = 64 } $DialogDefaultButton = @{ "First" = 0"Second" = 256"Third" = 512 } $DialogTopMost = @{ "False" = 0"True" = 4096 } $Response = $Shell.Popup($Global:Text, $Timeout, $Title, ($DialogButtons[$Button] + $DialogIcons[$Icon] + $DialogDefaultButton[$DefaultButton] + $DialogTopMost[$TopMost])) } catch {Write-Host "Fehler"} } end {} } $Timer = New-Object System.Windows.Forms.Timer $Timer.Interval = 1000 $Timer.Add_Tick({ $Time = ("Aktuelle Zeit: {0}" -f (Get-Date -Format T)) }) $Timer.Start() Show-DialogBox -Title "Test" -Text $Time `
Vielen Dank