diff --git a/functions/private/Install-WinUtilChoco.ps1 b/functions/private/Install-WinUtilChoco.ps1 index 24716bb1..d246a44b 100644 --- a/functions/private/Install-WinUtilChoco.ps1 +++ b/functions/private/Install-WinUtilChoco.ps1 @@ -14,15 +14,19 @@ function Install-WinUtilChoco { return } + $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" + Write-Host "Seems Chocolatey is not installed, installing now." Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) -ErrorAction Stop powershell choco feature enable -n allowGlobalConfirmation + $sync["Form"].taskbarItemInfo.ProgressState = "None" } Catch { Write-Host "===========================================" -Foregroundcolor Red Write-Host "-- Chocolatey failed to install ---" -Foregroundcolor Red Write-Host "===========================================" -Foregroundcolor Red + $sync["Form"].taskbarItemInfo.ProgressState = "Error" } } diff --git a/functions/private/Install-WinUtilProgramChoco.ps1 b/functions/private/Install-WinUtilProgramChoco.ps1 index 115030e8..1f0a8d2a 100644 --- a/functions/private/Install-WinUtilProgramChoco.ps1 +++ b/functions/private/Install-WinUtilProgramChoco.ps1 @@ -80,6 +80,7 @@ function Install-WinUtilProgramChoco { } } $x++ + # $sync["Form"].TaskbarItemInfo.ProgressValue = $x/$count } Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed diff --git a/functions/private/Install-WinUtilProgramWinget.ps1 b/functions/private/Install-WinUtilProgramWinget.ps1 index c45c001c..097188f0 100644 --- a/functions/private/Install-WinUtilProgramWinget.ps1 +++ b/functions/private/Install-WinUtilProgramWinget.ps1 @@ -97,6 +97,7 @@ Function Install-WinUtilProgramWinget { } } $X++ + # $sync["Form"].TaskbarItemInfo.ProgressValue = $x/$count } Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed return $failedPackages; diff --git a/functions/private/Install-WinUtilWinget.ps1 b/functions/private/Install-WinUtilWinget.ps1 index b22fcd28..655a11ff 100644 --- a/functions/private/Install-WinUtilWinget.ps1 +++ b/functions/private/Install-WinUtilWinget.ps1 @@ -19,6 +19,8 @@ function Install-WinUtilWinget { Write-Host "`nWinget is not Installed. Continuing with install.`r" -ForegroundColor Red } + $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" + # Gets the computer's information if ($null -eq $sync.ComputerInfo){ $ComputerInfo = Get-ComputerInfo -ErrorAction Stop @@ -63,4 +65,5 @@ function Install-WinUtilWinget { throw [WingetFailedInstall]::new('Failed to install!') } } + $sync["Form"].taskbarItemInfo.ProgressState = "None" } diff --git a/functions/private/Invoke-WinUtilFeatureInstall.ps1 b/functions/private/Invoke-WinUtilFeatureInstall.ps1 index 8fc6ee2c..8363b368 100644 --- a/functions/private/Invoke-WinUtilFeatureInstall.ps1 +++ b/functions/private/Invoke-WinUtilFeatureInstall.ps1 @@ -10,6 +10,9 @@ function Invoke-WinUtilFeatureInstall { $CheckBox ) + $sync["Form"].taskbarItemInfo.ProgressState = "Normal" + $sync["Form"].taskbarItemInfo.ProgressValue = 1 # Get amount of affected features & scripts + $CheckBox | ForEach-Object { if($sync.configs.feature.$psitem.feature){ Foreach( $feature in $sync.configs.feature.$psitem.feature ){ @@ -23,6 +26,7 @@ function Invoke-WinUtilFeatureInstall { } else{ + $sync["Form"].taskbarItemInfo.ProgressState = "Error" Write-Warning "Unable to Install $feature due to unhandled exception" Write-Warning $psitem.Exception.StackTrace } @@ -43,6 +47,7 @@ function Invoke-WinUtilFeatureInstall { } else{ + $sync["Form"].taskbarItemInfo.ProgressState = "Error" Write-Warning "Unable to Install $feature due to unhandled exception" Write-Warning $psitem.Exception.StackTrace } @@ -50,4 +55,7 @@ function Invoke-WinUtilFeatureInstall { } } } + if ($sync["Form"].taskbarItemInfo.ProgressState -ne "Error"){ + $sync["Form"].taskbarItemInfo.ProgressState = "None" + } } diff --git a/functions/public/Invoke-WPFGetInstalled.ps1 b/functions/public/Invoke-WPFGetInstalled.ps1 index 18b690fd..e91cd2a1 100644 --- a/functions/public/Invoke-WPFGetInstalled.ps1 +++ b/functions/public/Invoke-WPFGetInstalled.ps1 @@ -24,6 +24,7 @@ function Invoke-WPFGetInstalled { param($checkbox, $DebugPreference) $sync.ProcessRunning = $true + # $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" if($checkbox -eq "winget"){ Write-Host "Getting Installed Programs..." @@ -42,5 +43,6 @@ function Invoke-WPFGetInstalled { Write-Host "Done..." $sync.ProcessRunning = $false + # $sync["Form"].taskbarItemInfo.ProgressState = "None" } } diff --git a/functions/public/Invoke-WPFGetIso.ps1 b/functions/public/Invoke-WPFGetIso.ps1 index 6e97834c..6b33537a 100644 --- a/functions/public/Invoke-WPFGetIso.ps1 +++ b/functions/public/Invoke-WPFGetIso.ps1 @@ -15,6 +15,8 @@ function Invoke-WPFGetIso { $sync.BusyMessage.Visibility="Visible" $sync.BusyText.Text="N Busy" + $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" + Write-Host " _ __ __ _ " Write-Host " /\/\ (_) ___ _ __ ___ / / /\ \ \(_) _ __ " @@ -239,6 +241,7 @@ function Invoke-WPFGetIso { $sync.BusyMessage.Visibility="Hidden" $sync.ProcessRunning = $false + $sync["Form"].taskbarItemInfo.ProgressState = "None" } diff --git a/functions/public/Invoke-WPFInstall.ps1 b/functions/public/Invoke-WPFInstall.ps1 index 0032f10f..b0cb4904 100644 --- a/functions/public/Invoke-WPFInstall.ps1 +++ b/functions/public/Invoke-WPFInstall.ps1 @@ -20,6 +20,8 @@ function Invoke-WPFInstall { return } + $sync["Form"].taskbarItemInfo.ProgressState = "Normal" + Invoke-WPFRunspace -ArgumentList $PackagesToInstall -DebugPreference $DebugPreference -ScriptBlock { param($PackagesToInstall, $DebugPreference) $packagesWinget, $packagesChoco = { @@ -52,11 +54,13 @@ function Invoke-WPFInstall { Write-Host "===========================================" Write-Host "-- Installs have finished ---" Write-Host "===========================================" + # $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" } Catch { Write-Host "===========================================" Write-Host "Error: $_" Write-Host "===========================================" + # $sync["Form"].taskbarItemInfo.ProgressState = "Error" } Start-Sleep -Seconds 5 $sync.ProcessRunning = $False diff --git a/functions/public/Invoke-WPFMicrowin.ps1 b/functions/public/Invoke-WPFMicrowin.ps1 index 922748d9..4c01ea5d 100644 --- a/functions/public/Invoke-WPFMicrowin.ps1 +++ b/functions/public/Invoke-WPFMicrowin.ps1 @@ -4,6 +4,8 @@ function Invoke-WPFMicrowin { Invoke MicroWin routines... #> + $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" + if($sync.ProcessRunning) { $msg = "GetIso process is currently running." [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) @@ -477,5 +479,6 @@ public class PowerManagement { # Allow the machine to sleep again (optional) [PowerManagement]::SetThreadExecutionState(0) $sync.ProcessRunning = $false + $sync["Form"].taskbarItemInfo.ProgressState = "None" } } \ No newline at end of file diff --git a/functions/public/Invoke-WPFUnInstall.ps1 b/functions/public/Invoke-WPFUnInstall.ps1 index f3a9c64f..873e9eaf 100644 --- a/functions/public/Invoke-WPFUnInstall.ps1 +++ b/functions/public/Invoke-WPFUnInstall.ps1 @@ -29,6 +29,8 @@ function Invoke-WPFUnInstall { if($confirm -eq "No"){return} + $sync["Form"].taskbarItemInfo.ProgressState = "Normal" + Invoke-WPFRunspace -ArgumentList $PackagesToInstall -DebugPreference $DebugPreference -ScriptBlock { param($PackagesToInstall, $DebugPreference) $packagesWinget, $packagesChoco = { @@ -66,11 +68,13 @@ function Invoke-WPFUnInstall { Write-Host "===========================================" Write-Host "-- Uninstalls have finished ---" Write-Host "===========================================" + # $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" } Catch { Write-Host "===========================================" Write-Host "Error: $_" Write-Host "===========================================" + # $sync["Form"].taskbarItemInfo.ProgressState = "Error" } $sync.ProcessRunning = $False } diff --git a/scripts/main.ps1 b/scripts/main.ps1 index 71087cdb..4e6f0fc1 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -153,6 +153,10 @@ Invoke-WPFRunspace -ScriptBlock { # Print the logo Invoke-WPFFormVariables +# https://learn.microsoft.com/en-us/dotnet/api/system.windows.shell.taskbariteminfo?view=windowsdesktop-8.0 +$sync["Form"].TaskbarItemInfo = New-Object System.Windows.Shell.TaskbarItemInfo +$sync["Form"].taskbarItemInfo.ProgressState = "None" + # Set the titlebar $sync["Form"].title = $sync["Form"].title + " " + $sync.version # Set the commands that will run when the form is closed