From 2d751f4e8cbf249601c868d905e9805915bf09c6 Mon Sep 17 00:00:00 2001 From: MyDrift Date: Fri, 30 Aug 2024 19:46:00 +0200 Subject: [PATCH] Fixes, improvements + Auto Window handling (#2648) * fixes - change fontsize back to 12 - add correct handling of windows - removed double click handling of winutil * readd double click * fixes - argument passing on elevation & to windev script - remove shell output of log * improve compile -run - added $args param for args that get passed to winutil - improved starting new Shell logic * fix: compile's run logic - removed old logic - fixed command to run in new shell - replaced $args with $arg * fix: logs & border - move log start to after admin elevation - fix color of border on fixed tweaks button. * fix: MicrowinInjectDrivers's Margin - use theme value instead of custom value * change microwin checkbox margin - set cutom microwin checkbox margin due to cut off content * fix layouting of nav bar - replace strange collumndefinition to fix bugs, make sense and look better * rename $arg to $Arguments * change maxresolution from 1380 to 1280 --- Compile.ps1 | 15 +++++++++------ config/themes.json | 3 ++- scripts/main.ps1 | 6 ++++++ scripts/start.ps1 | 29 +++++++++++++++++++++------- windev.ps1 | 13 ++++++++++--- xaml/inputXML.xaml | 48 ++++++++++++++++++++++------------------------ 6 files changed, 72 insertions(+), 42 deletions(-) diff --git a/Compile.ps1 b/Compile.ps1 index 6f7a0313..afbe943d 100644 --- a/Compile.ps1 +++ b/Compile.ps1 @@ -1,7 +1,8 @@ param ( [switch]$Debug, [switch]$Run, - [switch]$SkipPreprocessing + [switch]$SkipPreprocessing, + [string]$Arguments ) $OFS = "`r`n" $scriptname = "winutil.ps1" @@ -118,10 +119,12 @@ catch { Write-Progress -Activity "Validating" -Completed if ($run) { - try { - Start-Process -FilePath "pwsh" -ArgumentList "$workingdir\$scriptname" - } catch { - Start-Process -FilePath "powershell" -ArgumentList "$workingdir\$scriptname" - } + $script = "& '$workingdir\$scriptname' $Arguments" + $powershellcmd = if (Get-Command pwsh -ErrorAction SilentlyContinue) { "pwsh" } else { "powershell" } + $processCmd = if (Get-Command wt.exe -ErrorAction SilentlyContinue) { "wt.exe" } else { $powershellcmd } + + Start-Process $processCmd -ArgumentList "$powershellcmd -NoProfile -Command $script" + + break } diff --git a/config/themes.json b/config/themes.json index efada878..eedb2f83 100644 --- a/config/themes.json +++ b/config/themes.json @@ -6,7 +6,7 @@ "CustomDialogWidth": "400", "CustomDialogHeight": "200", - "FontSize": "14", + "FontSize": "12", "FontFamily": "Arial", "FontSizeHeading": "16", "HeaderFontFamily": "Consolas, Monaco", @@ -26,6 +26,7 @@ "CloseIconFontSize": "18", "MicroWinLogoSize": "10", + "MicrowinCheckBoxMargin": "-10,5,0,0", "ProgressBarForegroundColor": "#FFAC1C", "ProgressBarBackgroundColor": "Transparent", diff --git a/scripts/main.ps1 b/scripts/main.ps1 index a18ed0b9..0d706c32 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -439,6 +439,12 @@ $sync["SearchBar"].Add_TextChanged({ } }) +$sync["Form"].Add_Loaded({ + param($e) + $sync["Form"].MaxWidth = [Double]::PositiveInfinity + $sync["Form"].MaxHeight = [Double]::PositiveInfinity +}) + # Initialize the hashtable $winutildir = @{} diff --git a/scripts/start.ps1 b/scripts/start.ps1 index 0d070cd0..c289709c 100644 --- a/scripts/start.ps1 +++ b/scripts/start.ps1 @@ -5,6 +5,7 @@ GitHub : https://github.com/ChrisTitusTech Version : #{replaceme} #> + param ( [switch]$Debug, [string]$Config, @@ -27,12 +28,6 @@ if ($Run) { $PARAM_RUN = $true } -$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" - -$logdir = "$env:localappdata\winutil\logs" -[System.IO.Directory]::CreateDirectory("$logdir") -Start-Transcript -Path "$logdir\winutil_$dateTime.log" -Append - # Load DLLs Add-Type -AssemblyName PresentationFramework Add-Type -AssemblyName System.Windows.Forms @@ -46,8 +41,22 @@ $sync.ProcessRunning = $false if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch." + $argList = @() + + $PSBoundParameters.GetEnumerator() | ForEach-Object { + $argList += if ($_.Value -is [switch] -and $_.Value) { + "-$($_.Key)" + } elseif ($_.Value) { + "-$($_.Key) `"$($_.Value)`"" + } + } + + $script = if ($MyInvocation.MyCommand.Path) { + "& { & '$($MyInvocation.MyCommand.Path)' $argList }" + } else { + "iex '& { $(irm https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1) } $argList'" + } - $script = if ($MyInvocation.MyCommand.Path) { "& '" + $MyInvocation.MyCommand.Path + "'" } else { "irm 'https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1' | iex"} $powershellcmd = if (Get-Command pwsh -ErrorAction SilentlyContinue) { "pwsh" } else { "powershell" } $processCmd = if (Get-Command wt.exe -ErrorAction SilentlyContinue) { "wt.exe" } else { $powershellcmd } @@ -56,6 +65,12 @@ if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]: break } +$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" + +$logdir = "$env:localappdata\winutil\logs" +[System.IO.Directory]::CreateDirectory("$logdir") | Out-Null +Start-Transcript -Path "$logdir\winutil_$dateTime.log" -Append -NoClobber | Out-Null + # Set PowerShell window title $Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Admin)" clear-host diff --git a/windev.ps1 b/windev.ps1 index 5bba017d..b735efca 100644 --- a/windev.ps1 +++ b/windev.ps1 @@ -14,8 +14,15 @@ if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch." + # Capture all the arguments passed to the script + $argList = $args -join ' ' + + $script = if ($MyInvocation.MyCommand.Path) { + "& { & '$($MyInvocation.MyCommand.Path)' $argList }" + } else { + "iex '& { $(irm https://github.com/ChrisTitusTech/winutil/raw/main/windev.ps1) } $argList'" + } - $script = if ($MyInvocation.MyCommand.Path) { "& '" + $MyInvocation.MyCommand.Path + "'" } else { "irm 'https://github.com/ChrisTitusTech/winutil/raw/main/windev.ps1' | iex"} $powershellcmd = if (Get-Command pwsh -ErrorAction SilentlyContinue) { "pwsh" } else { "powershell" } $processCmd = if (Get-Command wt.exe -ErrorAction SilentlyContinue) { "wt.exe" } else { $powershellcmd } @@ -46,9 +53,9 @@ function RedirectToLatestPreRelease { Write-Host "Using latest Full Release" $url = "https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1" } - Invoke-RestMethod $url | Invoke-Expression + + iex "& { $(irm $url) } $argList" } # Call the redirect function - RedirectToLatestPreRelease diff --git a/xaml/inputXML.xaml b/xaml/inputXML.xaml index b6097a17..8094af4a 100644 --- a/xaml/inputXML.xaml +++ b/xaml/inputXML.xaml @@ -9,7 +9,11 @@ WindowStartupLocation="CenterScreen" UseLayoutRounding="True" WindowStyle="None" - Title="Chris Titus Tech's Windows Utility" Height="800" Width="1280"> + Width="Auto" + Height="Auto" + MaxWidth="1280" + MaxHeight="800" + Title="Chris Titus Tech's Windows Utility"> @@ -689,10 +693,10 @@ - - - - + + + + - -