Files
powershell-scripts/EgtDeploy/GUI/ExampleProgressBarGUI.ps1
T
marco.locatelli@steamware.net 7f87236961 Accorpamento Progetti Powershell Script
2024-02-21 11:23:47 +01:00

57 lines
1.7 KiB
PowerShell

Add-Type -AssemblyName System.Windows.Forms
# Range to count through
$Range = 1..100
# Determine minimum & maximum values of range
$MinMax = $Range | Measure-Object -Minimum -Maximum
#inizializzo counter a zero
$Counter = 0
# Function to run on button click
Function Start-Counting {
# On button click we set progress bar to start (minimum) value and refresh
$ProgressBar.Value = $MinMax.Minimum
$ProgressBar.Refresh()
$Button.Refresh()
Foreach ($Number in $Range) {
$Counter++
# Perform single step on progress bar and refresh
$ProgressBar.PerformStep()
$ProgressBar.Refresh()
# Step interval
Start-Sleep -Milliseconds 50
}
$Counter = 0
}
$ProgressForm = New-Object System.Windows.Forms.Form
$ProgressForm.Text = "Operation in progress..."
$ProgressForm.SizeGripStyle = "Hide"
$ProgressForm.StartPosition = "CenterScreen"
$ProgressForm.FormBorderStyle = "FixedDialog"
$ProgressForm.MaximizeBox = $False
$ProgressForm.Width = 400
$ProgressForm.Height = 200
$ProgressBar = New-Object System.Windows.Forms.ProgressBar
$ProgressBar.Width = 340
$ProgressBar.Height = 25
$ProgressBar.Visible = $True
$ProgressBar.Minimum = $MinMax.Minimum
$ProgressBar.Maximum = $MinMax.Maximum
$ProgressBar.Value = $MinMax.Minimum
$ProgressBar.Step = 1
$ProgressBar.Location = New-Object System.Drawing.Point(20,60)
$ProgressForm.Controls.Add($ProgressBar)
$Button = New-Object System.Windows.Forms.Button
$Button.Text = "Test Progress"
$Button.Width = 200
$Button.Height = 40
$Button.Add_Click({Start-Counting})
$Button.Location = New-Object System.Drawing.Point(20,90)
$Button.Font = "Microsoft Sans Serif,10"
$ProgressForm.Controls.Add($Button)
$ProgressForm.ShowDialog()
$ProgressForm.TopMost = $True