mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-06-28 00:54:47 -05:00
Test 03 2023 (#726)
* Update inputXML.xaml * Compile Winutil * Update main.ps1 (#641) Fix DarkMode * Compile Winutil * Compile Winutil * Compile Winutil * Update tweaks.json * fix hovertime * shortcut (#643) add ability to create a shortcut to invoke winutil more easily * Compile Winutil * Tweaks Check (#646) * Tweaks Check Added check for no checked tweaks plus formatting * more formating fixing * Compile Winutil * [ooshutup10] Fixed link to ooshutup10 settings file (#665) * Compile Winutil * Features Migrated to config and runspaces (#667) * Compile Winutil * Document Calendar Disable/Enable Check Disable Notification and click undo tweaks to re-enable calendar * Compile Winutil * Update Edge_Removal.bat * Update Edge_Removal.bat (#660) * garbage commit - read system Trying to read current system registry values state and do a checkbox for enabled or disabled values * Compile Winutil * Add Ubisoft Connect & WinRAR as install options. (#678) * Compile Winutil * adding the code from asheroto to install winget (#684) * adding the code from asheroto to get winget with Server versions of Windows, that come without winget , the script seems unable to install it and then refuses to install any programs. so by adding two lines of code (hopefully) you can include the installation of winget and then fulfill the requirement and let the program run and do all the cool things * instaling winget from asheroto so the script will check if winget is installed on server and LTSC versions of Windows. and tries to install it, when for some reason it can't, then a condition on the code gets fulfilled and the function breaks, this code from the asheroto repo should, (hopefully) make it so winget can get installed and the condition is never met, therefore allowing it the script to continue * Compile Winutil * Add Neovim and Node Version Manager (#691) * Compile Winutil * Preload Winget and tweaks with already installed (#682) * winget * updated runspaces and winget to update gui outside of main thread * registry check for tweaks * add impex to winget * add uninstall button * tweaks done * update tests --------- Co-authored-by: Chris Titus <contact@christitus.com> * Compile Winutil * feat: add postman into developement (#695) Co-authored-by: Chris Titus <contact@christitus.com> * Update inputXML.xaml (#701) Some of the items were missing WPF in the name * Compile Winutil * Split up AllowGameDVR to fix breaking Xbox Game Bar (#692) * Split up AllowGameDVR to fix breaking Xbox Game Bar * Undo changes to winutil * Compile Winutil * Removed Atom due to it having been sunsetted (#711) Co-authored-by: Chris Titus <contact@christitus.com> * Add application GeForce NOW to Applications/Games (#724) * Compile Winutil * Fix syntax and typo * Compile Winutil * Fixing Original Service Types * Compile Winutil * Update inputXML.xaml (#725) Fix typo as upgrade selection will upgrade all * Compile Winutil --------- Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com> Co-authored-by: DeveloperDurp <developerdurp@durp.info> Co-authored-by: jokerwrld999 <47574931+jokerwrld999@users.noreply.github.com> Co-authored-by: Raf <69535896+Rafee-M@users.noreply.github.com> Co-authored-by: Jack Boecker <boeckerjack@protonmail.com> Co-authored-by: migno_chrono <75509204+mignochrono@users.noreply.github.com> Co-authored-by: Umair Raza <52033975+umairraza96@users.noreply.github.com> Co-authored-by: dreamsyntax <dreamsyntax@gmail.com> Co-authored-by: Daniel <74148862+Danulal@users.noreply.github.com> Co-authored-by: tomgrice <tomgrice@gmail.com>
This commit is contained in:
@ -18,13 +18,17 @@ function Invoke-WPFButton {
|
||||
|
||||
"WPFTab?BT" {Invoke-WPFTab $Button}
|
||||
"WPFinstall" {Invoke-WPFInstall}
|
||||
"WPFuninstall" {Invoke-WPFUnInstall}
|
||||
"WPFInstallUpgrade" {Invoke-WPFInstallUpgrade}
|
||||
"WPFdesktop" {Invoke-WPFPresets "Desktop"}
|
||||
"WPFlaptop" {Invoke-WPFPresets "laptop"}
|
||||
"WPFminimal" {Invoke-WPFPresets "minimal"}
|
||||
"WPFexport" {Invoke-WPFImpex -type "export"}
|
||||
"WPFimport" {Invoke-WPFImpex -type "import"}
|
||||
"WPFexport" {Invoke-WPFImpex -type "export" -CheckBox "WPFTweaks"}
|
||||
"WPFimport" {Invoke-WPFImpex -type "import" -CheckBox "WPFTweaks"}
|
||||
"WPFexportWinget" {Invoke-WPFImpex -type "export" -CheckBox "WPFInstall"}
|
||||
"WPFimportWinget" {Invoke-WPFImpex -type "import" -CheckBox "WPFInstall"}
|
||||
"WPFclear" {Invoke-WPFPresets -preset $null -imported $true}
|
||||
"WPFclearWinget" {Invoke-WPFPresets -preset $null -imported $true -CheckBox "WPFInstall"}
|
||||
"WPFtweaksbutton" {Invoke-WPFtweaksbutton}
|
||||
"WPFAddUltPerf" {Invoke-WPFUltimatePerformance -State "Enabled"}
|
||||
"WPFRemoveUltPerf" {Invoke-WPFUltimatePerformance -State "Disabled"}
|
||||
@ -43,7 +47,8 @@ function Invoke-WPFButton {
|
||||
"WPFFixesUpdate" {Invoke-WPFFixesUpdate}
|
||||
"WPFUpdatesdisable" {Invoke-WPFUpdatesdisable}
|
||||
"WPFUpdatessecurity" {Invoke-WPFUpdatessecurity}
|
||||
|
||||
|
||||
"WPFWinUtilShortcut" {Invoke-WPFShortcut -ShortcutToAdd "WinUtil"}
|
||||
"WPFGetInstalled" {Invoke-WPFGetInstalled -CheckBox "winget"}
|
||||
"WPFGetInstalledTweaks" {Invoke-WPFGetInstalled -CheckBox "tweaks"}
|
||||
}
|
||||
}
|
@ -5,52 +5,33 @@ function Invoke-WPFFeatureInstall {
|
||||
GUI Function to install Windows Features
|
||||
|
||||
#>
|
||||
If ( $WPFFeaturesdotnet.IsChecked -eq $true ) {
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx4-AdvSrvs" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All -NoRestart
|
||||
}
|
||||
If ( $WPFFeatureshyperv.IsChecked -eq $true ) {
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "HypervisorPlatform" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Tools-All" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-PowerShell" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Hypervisor" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Services" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-Management-Clients" -All -NoRestart
|
||||
cmd /c bcdedit /set hypervisorschedulertype classic
|
||||
Write-Host "HyperV is now installed and configured. Please Reboot before using."
|
||||
}
|
||||
If ( $WPFFeatureslegacymedia.IsChecked -eq $true ) {
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "MediaPlayback" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "DirectPlay" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "LegacyComponents" -All -NoRestart
|
||||
}
|
||||
If ( $WPFFeaturewsl.IsChecked -eq $true ) {
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "VirtualMachinePlatform" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -All -NoRestart
|
||||
Write-Host "WSL is now installed and configured. Please Reboot before using."
|
||||
}
|
||||
If ( $WPFFeaturenfs.IsChecked -eq $true ) {
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "ServicesForNFS-ClientOnly" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "ClientForNFS-Infrastructure" -All -NoRestart
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "NFS-Administration" -All -NoRestart
|
||||
nfsadmin client stop
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousUID" -Type DWord -Value 0
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name "AnonymousGID" -Type DWord -Value 0
|
||||
nfsadmin client start
|
||||
nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i
|
||||
Write-Host "NFS is now setup for user based NFS mounts"
|
||||
}
|
||||
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||
$MessageboxTitle = "All features are now installed "
|
||||
$Messageboxbody = ("Done")
|
||||
$MessageIcon = [System.Windows.MessageBoxImage]::Information
|
||||
|
||||
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
|
||||
if($sync.ProcessRunning){
|
||||
$msg = "Install process is currently running."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "================================="
|
||||
Write-Host "--- Features are Installed ---"
|
||||
Write-Host "================================="
|
||||
$Features = Get-WinUtilCheckBoxes -Group "WPFFeature"
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $Features -ScriptBlock {
|
||||
param($Features)
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
|
||||
Invoke-WinUtilFeatureInstall $Features
|
||||
|
||||
$sync.ProcessRunning = $false
|
||||
Write-Host "==================================="
|
||||
Write-Host "--- Features are Installed ---"
|
||||
Write-Host "--- A Reboot may be required ---"
|
||||
Write-Host "==================================="
|
||||
|
||||
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||
$MessageboxTitle = "All features are now installed "
|
||||
$Messageboxbody = ("Done")
|
||||
$MessageIcon = [System.Windows.MessageBoxImage]::Information
|
||||
|
||||
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
|
||||
}
|
||||
}
|
46
functions/public/Invoke-WPFGetInstalled.ps1
Normal file
46
functions/public/Invoke-WPFGetInstalled.ps1
Normal file
@ -0,0 +1,46 @@
|
||||
function Invoke-WPFGetInstalled {
|
||||
<#
|
||||
|
||||
.DESCRIPTION
|
||||
placeholder
|
||||
|
||||
#>
|
||||
param($checkbox)
|
||||
|
||||
if($sync.ProcessRunning){
|
||||
$msg = "Install process is currently running."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
if(!(Test-WinUtilPackageManager -winget) -and $checkbox -eq "winget"){
|
||||
Write-Host "==========================================="
|
||||
Write-Host "-- Winget is not installed ---"
|
||||
Write-Host "==========================================="
|
||||
return
|
||||
}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $checkbox -ScriptBlock {
|
||||
param($checkbox)
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
|
||||
if($checkbox -eq "winget"){
|
||||
Write-Host "Getting Installed Programs..."
|
||||
}
|
||||
if($checkbox -eq "tweaks"){
|
||||
Write-Host "Getting Installed Tweaks..."
|
||||
}
|
||||
|
||||
$Checkboxes = Invoke-WinUtilCurrentSystem -CheckBox $checkbox
|
||||
|
||||
$sync.form.Dispatcher.invoke({
|
||||
foreach($checkbox in $Checkboxes){
|
||||
$sync.$checkbox.ischecked = $True
|
||||
}
|
||||
})
|
||||
|
||||
Write-Host "Done..."
|
||||
$sync.ProcessRunning = $false
|
||||
}
|
||||
}
|
@ -9,7 +9,10 @@ function Invoke-WPFImpex {
|
||||
Invoke-WPFImpex -type "export"
|
||||
|
||||
#>
|
||||
param($type)
|
||||
param(
|
||||
$type,
|
||||
$checkbox
|
||||
)
|
||||
|
||||
if ($type -eq "export"){
|
||||
$FileBrowser = New-Object System.Windows.Forms.SaveFileDialog
|
||||
@ -27,11 +30,11 @@ function Invoke-WPFImpex {
|
||||
}
|
||||
|
||||
if ($type -eq "export"){
|
||||
$jsonFile = Get-WinUtilCheckBoxes WPFTweaks -unCheck $false
|
||||
$jsonFile = Get-WinUtilCheckBoxes $checkbox -unCheck $false
|
||||
$jsonFile | ConvertTo-Json | Out-File $FileBrowser.FileName -Force
|
||||
}
|
||||
if ($type -eq "import"){
|
||||
$jsonFile = Get-Content $FileBrowser.FileName | ConvertFrom-Json
|
||||
Invoke-WPFPresets -preset $jsonFile -imported $true
|
||||
Invoke-WPFPresets -preset $jsonFile -imported $true -CheckBox $checkbox
|
||||
}
|
||||
}
|
||||
|
@ -8,8 +8,10 @@ function Invoke-WPFPresets {
|
||||
|
||||
param(
|
||||
$preset,
|
||||
[bool]$imported = $false
|
||||
[bool]$imported = $false,
|
||||
$checkbox = "WPFTeaks"
|
||||
)
|
||||
|
||||
if($imported -eq $true){
|
||||
$CheckBoxesToCheck = $preset
|
||||
}
|
||||
@ -17,15 +19,23 @@ function Invoke-WPFPresets {
|
||||
$CheckBoxesToCheck = $sync.configs.preset.$preset
|
||||
}
|
||||
|
||||
#Uncheck all
|
||||
get-variable | Where-Object {$_.name -like "*tweaks*"} | ForEach-Object {
|
||||
if ($psitem.value.gettype().name -eq "CheckBox"){
|
||||
$CheckBox = Get-Variable $psitem.Name
|
||||
if ($CheckBoxesToCheck -contains $CheckBox.name){
|
||||
$checkbox.value.ischecked = $true
|
||||
if($checkbox -eq "WPFTeaks"){
|
||||
$filter = Get-WinUtilVariables -Type Checkbox | Where-Object {$psitem -like "*tweaks*"}
|
||||
$sync.GetEnumerator() | Where-Object {$psitem.Key -in $filter} | ForEach-Object {
|
||||
if ($CheckBoxesToCheck -contains $PSItem.name){
|
||||
$sync.$($PSItem.name).ischecked = $true
|
||||
}
|
||||
else{$checkbox.value.ischecked = $false}
|
||||
else{$sync.$($PSItem.name).ischecked = $false}
|
||||
}
|
||||
}
|
||||
if($checkbox -eq "WPFInstall"){
|
||||
|
||||
$filter = Get-WinUtilVariables -Type Checkbox | Where-Object {$psitem -like "WPFInstall*"}
|
||||
$sync.GetEnumerator() | Where-Object {$psitem.Key -in $filter} | ForEach-Object {
|
||||
if($($sync.configs.applications.$($psitem.name).winget) -in $CheckBoxesToCheck){
|
||||
$sync.$($PSItem.name).ischecked = $true
|
||||
}
|
||||
else{$sync.$($PSItem.name).ischecked = $false}
|
||||
}
|
||||
}
|
||||
}
|
@ -23,40 +23,13 @@ function Invoke-WPFRunspace {
|
||||
$ArgumentList
|
||||
)
|
||||
|
||||
#Configure max thread count for RunspacePool.
|
||||
$maxthreads = [int]$env:NUMBER_OF_PROCESSORS
|
||||
|
||||
#Create a new session state for parsing variables ie hashtable into our runspace.
|
||||
$hashVars = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'sync',$sync,$Null
|
||||
$InitialSessionState = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault()
|
||||
|
||||
#Add the variable to the RunspacePool sessionstate
|
||||
$InitialSessionState.Variables.Add($hashVars)
|
||||
|
||||
#Add functions
|
||||
$functions = Get-ChildItem function:\ | Where-Object {$_.name -like "*winutil*" -or $_.name -like "*WPF*"}
|
||||
foreach ($function in $functions){
|
||||
$functionDefinition = Get-Content function:\$($function.name)
|
||||
$functionEntry = New-Object System.Management.Automation.Runspaces.SessionStateFunctionEntry -ArgumentList $($function.name), $functionDefinition
|
||||
|
||||
# And add it to the iss object
|
||||
$initialSessionState.Commands.Add($functionEntry)
|
||||
}
|
||||
|
||||
#Create our runspace pool. We are entering three parameters here min thread count, max thread count and host machine of where these runspaces should be made.
|
||||
$script:runspace = [runspacefactory]::CreateRunspacePool(1,$maxthreads,$InitialSessionState, $Host)
|
||||
|
||||
|
||||
#Crate a PowerShell instance.
|
||||
$script:powershell = [powershell]::Create()
|
||||
|
||||
#Open a RunspacePool instance.
|
||||
$script:runspace.Open()
|
||||
|
||||
#Add Scriptblock and Arguments to runspace
|
||||
$script:powershell.AddScript($ScriptBlock)
|
||||
$script:powershell.AddArgument($ArgumentList)
|
||||
$script:powershell.RunspacePool = $script:runspace
|
||||
$script:powershell.RunspacePool = $sync.runspace
|
||||
|
||||
#Run our RunspacePool.
|
||||
$script:handle = $script:powershell.BeginInvoke()
|
||||
@ -66,8 +39,8 @@ function Invoke-WPFRunspace {
|
||||
{
|
||||
$script:powershell.EndInvoke($script:handle)
|
||||
$script:powershell.Dispose()
|
||||
$script:runspace.Dispose()
|
||||
$script:runspace.Close()
|
||||
$sync.runspace.Dispose()
|
||||
$sync.runspace.Close()
|
||||
[System.GC]::Collect()
|
||||
}
|
||||
}
|
33
functions/public/Invoke-WPFShortcut.ps1
Normal file
33
functions/public/Invoke-WPFShortcut.ps1
Normal file
@ -0,0 +1,33 @@
|
||||
function Invoke-WPFShortcut {
|
||||
<#
|
||||
|
||||
.DESCRIPTION
|
||||
Creates a shortcut
|
||||
|
||||
#>
|
||||
param($ShortcutToAdd)
|
||||
|
||||
Switch ($ShortcutToAdd) {
|
||||
"WinUtil" {
|
||||
$SourceExe = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
$IRM = 'irm https://christitus.com/win | iex'
|
||||
$Powershell = '-ExecutionPolicy Bypass -Command "Start-Process powershell.exe -verb runas -ArgumentList'
|
||||
$ArgumentsToSourceExe = "$powershell '$IRM'"
|
||||
$DestinationName = "WinUtil.lnk"
|
||||
}
|
||||
}
|
||||
|
||||
$FileBrowser = New-Object System.Windows.Forms.SaveFileDialog
|
||||
$FileBrowser.InitialDirectory = [Environment]::GetFolderPath('Desktop')
|
||||
$FileBrowser.Filter = "Shortcut Files (*.lnk)|*.lnk"
|
||||
$FileBrowser.FileName = $DestinationName
|
||||
$FileBrowser.ShowDialog() | Out-Null
|
||||
|
||||
$WshShell = New-Object -comObject WScript.Shell
|
||||
$Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName)
|
||||
$Shortcut.TargetPath = $SourceExe
|
||||
$Shortcut.Arguments = $ArgumentsToSourceExe
|
||||
$Shortcut.Save()
|
||||
|
||||
Write-Host "Shortcut for $ShortcutToAdd has been saved to $($FileBrowser.FileName)"
|
||||
}
|
@ -8,17 +8,17 @@ function Invoke-WPFTab {
|
||||
#>
|
||||
|
||||
Param ($ClickedTab)
|
||||
$Tabs = Get-Variable WPFTab?BT
|
||||
$TabNav = Get-Variable WPFTabNav
|
||||
$Tabs = Get-WinUtilVariables | Where-Object {$psitem -like "WPFTab?BT"}
|
||||
$TabNav = Get-WinUtilVariables | Where-Object {$psitem -like "WPFTabNav"}
|
||||
$x = [int]($ClickedTab -replace "WPFTab","" -replace "BT","") - 1
|
||||
|
||||
0..($Tabs.Count -1 ) | ForEach-Object {
|
||||
|
||||
if ($x -eq $psitem){
|
||||
$TabNav.value.Items[$psitem].IsSelected = $true
|
||||
$sync.$TabNav.Items[$psitem].IsSelected = $true
|
||||
}
|
||||
else{
|
||||
$TabNav.value.Items[$psitem].IsSelected = $false
|
||||
$sync.$TabNav.Items[$psitem].IsSelected = $false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
58
functions/public/Invoke-WPFUnInstall.ps1
Normal file
58
functions/public/Invoke-WPFUnInstall.ps1
Normal file
@ -0,0 +1,58 @@
|
||||
function Invoke-WPFUnInstall {
|
||||
<#
|
||||
|
||||
.DESCRIPTION
|
||||
PlaceHolder
|
||||
|
||||
#>
|
||||
|
||||
if($sync.ProcessRunning){
|
||||
$msg = "Install process is currently running."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
$WingetInstall = Get-WinUtilCheckBoxes -Group "WPFInstall"
|
||||
|
||||
if ($wingetinstall.Count -eq 0) {
|
||||
$WarningMsg = "Please select the program(s) to install"
|
||||
[System.Windows.MessageBox]::Show($WarningMsg, $AppTitle, [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
$ButtonType = [System.Windows.MessageBoxButton]::YesNo
|
||||
$MessageboxTitle = "Are you sure?"
|
||||
$Messageboxbody = ("This will uninstall the following applications `n $WingetInstall")
|
||||
$MessageIcon = [System.Windows.MessageBoxImage]::Information
|
||||
|
||||
$confirm = [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
|
||||
|
||||
if($confirm -eq "No"){return}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $WingetInstall -scriptblock {
|
||||
param($WingetInstall)
|
||||
try{
|
||||
$sync.ProcessRunning = $true
|
||||
|
||||
# Install all winget programs in new window
|
||||
Install-WinUtilProgramWinget -ProgramsToInstall $WingetInstall -Manage "Uninstalling"
|
||||
|
||||
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||
$MessageboxTitle = "Uninstalls are Finished "
|
||||
$Messageboxbody = ("Done")
|
||||
$MessageIcon = [System.Windows.MessageBoxImage]::Information
|
||||
|
||||
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
|
||||
|
||||
Write-Host "==========================================="
|
||||
Write-Host "-- Uninstalls have finished ---"
|
||||
Write-Host "==========================================="
|
||||
}
|
||||
Catch {
|
||||
Write-Host "==========================================="
|
||||
Write-Host "-- Winget failed to install ---"
|
||||
Write-Host "==========================================="
|
||||
}
|
||||
$sync.ProcessRunning = $False
|
||||
}
|
||||
}
|
@ -1,20 +1,26 @@
|
||||
function Invoke-WPFtweaksbutton {
|
||||
<#
|
||||
|
||||
.DESCRIPTION
|
||||
PlaceHolder
|
||||
|
||||
#>
|
||||
|
||||
.DESCRIPTION
|
||||
PlaceHolder
|
||||
|
||||
#>
|
||||
|
||||
if($sync.ProcessRunning){
|
||||
$msg = "Install process is currently running."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
$Tweaks = Get-WinUtilCheckBoxes -Group "WPFTweaks"
|
||||
|
||||
Set-WinUtilDNS -DNSProvider $WPFchangedns.text
|
||||
Set-WinUtilDNS -DNSProvider $sync["WPFchangedns"].text
|
||||
|
||||
if ($tweaks.count -eq 0 -and $sync["WPFchangedns"].text -eq "Default"){
|
||||
$msg = "Please check the tweaks you wish to perform."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $Tweaks -ScriptBlock {
|
||||
param($Tweaks)
|
||||
|
@ -11,30 +11,36 @@ function Invoke-WPFundoall {
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
$Tweaks = Get-WinUtilCheckBoxes -Group "WPFTweaks"
|
||||
|
||||
if ($tweaks.count -eq 0){
|
||||
$msg = "Please check the tweaks you wish to undo."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
$Tweaks = Get-WinUtilCheckBoxes -Group "WPFTweaks"
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $Tweaks -ScriptBlock {
|
||||
Invoke-WPFRunspace -ArgumentList $Tweaks -ScriptBlock {
|
||||
param($Tweaks)
|
||||
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
|
||||
|
||||
Foreach ($tweak in $tweaks){
|
||||
Invoke-WinUtilTweaks $tweak -undo $true
|
||||
}
|
||||
|
||||
|
||||
$sync.ProcessRunning = $false
|
||||
Write-Host "=================================="
|
||||
Write-Host "--- Undo Tweaks are Finished ---"
|
||||
Write-Host "=================================="
|
||||
|
||||
|
||||
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||
$MessageboxTitle = "Tweaks are Finished "
|
||||
$Messageboxbody = ("Done")
|
||||
$MessageIcon = [System.Windows.MessageBoxImage]::Information
|
||||
|
||||
|
||||
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
|
||||
|
Reference in New Issue
Block a user