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 @@ - - - - + + + + - -