mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-07-01 10:32:35 -05:00
Compare commits
18 Commits
25.03.05
...
37bf8bfa4e
Author | SHA1 | Date | |
---|---|---|---|
37bf8bfa4e | |||
535b0e409d | |||
9b30befe96 | |||
a920862a9d | |||
50090efcef | |||
72f6ca17e5 | |||
27cc813b8f | |||
2ee10b57d4 | |||
44e95b68a7 | |||
7158192744 | |||
74d43e378e | |||
197162f337 | |||
e1bd2a9398 | |||
70533a3998 | |||
25ce9df16f | |||
07abbba938 | |||
28e8db98d3 | |||
45ec574221 |
29
.github/workflows/close-old-issues.yaml
vendored
29
.github/workflows/close-old-issues.yaml
vendored
@ -25,6 +25,8 @@ jobs:
|
|||||||
const inactivityPeriod = new Date();
|
const inactivityPeriod = new Date();
|
||||||
inactivityPeriod.setDate(inactivityPeriod.getDate() - 14);
|
inactivityPeriod.setDate(inactivityPeriod.getDate() - 14);
|
||||||
|
|
||||||
|
const labelKeepIssue = 'Keep Issue Open';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Get all open issues with pagination
|
// Get all open issues with pagination
|
||||||
for await (const response of octokit.paginate.iterator(octokit.rest.issues.listForRepo, {
|
for await (const response of octokit.paginate.iterator(octokit.rest.issues.listForRepo, {
|
||||||
@ -36,6 +38,33 @@ jobs:
|
|||||||
|
|
||||||
// Close issues inactive for more than the inactivity period
|
// Close issues inactive for more than the inactivity period
|
||||||
for (const issue of issues) {
|
for (const issue of issues) {
|
||||||
|
const closeIssue = true;
|
||||||
|
|
||||||
|
// Get all Labels of issue, and compared each label with the labelKeepIssue const variable
|
||||||
|
try {
|
||||||
|
const respondIssueLabels = await octokit.request("GET /repos/{owner}/{repo}/issues/{issue_number}/labels", {
|
||||||
|
owner: owner,
|
||||||
|
repo: repo,
|
||||||
|
issue_number: issue.number
|
||||||
|
});
|
||||||
|
const labels = respondIssueLabels.data;
|
||||||
|
|
||||||
|
for (let i = 0; i < labels.length; i++) {
|
||||||
|
const label = labels[i]
|
||||||
|
if (label.name === labelKeepIssue) {
|
||||||
|
console.log(`Issue #${issue.number} will not be closed`);
|
||||||
|
closeIssue = false;
|
||||||
|
break; // Break from the loop, no need to check the remaining Labels.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Error while Fetching Labels for Issue #${issue.number}, Error: ${error}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!closeIssue) {
|
||||||
|
continue; // Skip the next bit of code
|
||||||
|
}
|
||||||
|
|
||||||
const lastCommentDate = issue.updated_at;
|
const lastCommentDate = issue.updated_at;
|
||||||
if (new Date(lastCommentDate) < inactivityPeriod) {
|
if (new Date(lastCommentDate) < inactivityPeriod) {
|
||||||
try {
|
try {
|
||||||
|
@ -1423,6 +1423,14 @@
|
|||||||
"link": "https://www.postman.com/",
|
"link": "https://www.postman.com/",
|
||||||
"winget": "Postman.Postman"
|
"winget": "Postman.Postman"
|
||||||
},
|
},
|
||||||
|
"WPFInstallpowerautomate": {
|
||||||
|
"category": "Microsoft Tools",
|
||||||
|
"choco": "powerautomatedesktop",
|
||||||
|
"content": "Power Automate",
|
||||||
|
"description": "Using Power Automate Desktop you can automate tasks on the desktop as well as the Web.",
|
||||||
|
"link": "https://www.microsoft.com/en-us/power-platform/products/power-automate",
|
||||||
|
"winget": "Microsoft.PowerAutomateDesktop"
|
||||||
|
},
|
||||||
"WPFInstallpowerbi": {
|
"WPFInstallpowerbi": {
|
||||||
"category": "Microsoft Tools",
|
"category": "Microsoft Tools",
|
||||||
"choco": "powerbi",
|
"choco": "powerbi",
|
||||||
@ -1743,6 +1751,14 @@
|
|||||||
"link": "https://stefansundin.github.io/superf4/",
|
"link": "https://stefansundin.github.io/superf4/",
|
||||||
"winget": "StefanSundin.Superf4"
|
"winget": "StefanSundin.Superf4"
|
||||||
},
|
},
|
||||||
|
"WPFInstallswift": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Swift toolchain",
|
||||||
|
"description": "Swift is a general-purpose programming language that’s approachable for newcomers and powerful for experts.",
|
||||||
|
"link": "https://www.swift.org/",
|
||||||
|
"winget": "Swift.Toolchain"
|
||||||
|
},
|
||||||
"WPFInstallsynctrayzor": {
|
"WPFInstallsynctrayzor": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "synctrayzor",
|
"choco": "synctrayzor",
|
||||||
|
@ -1889,6 +1889,13 @@
|
|||||||
"Name": "Scheduling Category",
|
"Name": "Scheduling Category",
|
||||||
"Value": "High",
|
"Value": "High",
|
||||||
"Type": "String"
|
"Type": "String"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"Name": "ScoobeSystemSettingEnabled",
|
||||||
|
"Value": "0",
|
||||||
|
"Type": "DWord"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
@ -2234,6 +2241,18 @@
|
|||||||
"
|
"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"WPFTweaksEndTaskOnTaskbar": {
|
||||||
|
"Content": "Enable End Task With Right Click",
|
||||||
|
"Description": "Enables option to end task when right clicking a program in the taskbar",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a002_",
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\" -Name \"TaskbarEndTask\" -Type \"DWord\" -Value \"1\"
|
||||||
|
"
|
||||||
|
]
|
||||||
|
},
|
||||||
"WPFTweaksOO": {
|
"WPFTweaksOO": {
|
||||||
"Content": "Run OO Shutup",
|
"Content": "Run OO Shutup",
|
||||||
"Description": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
|
"Description": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
|
||||||
@ -2398,12 +2417,20 @@
|
|||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a028_",
|
"Order": "a028_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\" "
|
"
|
||||||
|
New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\"
|
||||||
|
Write-Host Restarting explorer.exe ...
|
||||||
|
$process = Get-Process -Name \"explorer\"
|
||||||
|
Stop-Process -InputObject $process
|
||||||
|
"
|
||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
"
|
"
|
||||||
Remove-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Recurse -Confirm:$false -Force
|
Remove-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Recurse -Confirm:$false -Force
|
||||||
Write-Host Restart Needed for change
|
# Restarting Explorer in the Undo Script might not be necessary, as the Registry change without restarting Explorer does work, but just to make sure.
|
||||||
|
Write-Host Restarting explorer.exe ...
|
||||||
|
$process = Get-Process -Name \"explorer\"
|
||||||
|
Stop-Process -InputObject $process
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -2613,6 +2640,14 @@
|
|||||||
"Order": "a067_",
|
"Order": "a067_",
|
||||||
"Type": "Toggle"
|
"Type": "Toggle"
|
||||||
},
|
},
|
||||||
|
"WPFToggleTaskbarWidgets": {
|
||||||
|
"Content": "Taskbar Widgets",
|
||||||
|
"Description": "If Enabled then Widgets Icon in Taskbar will be shown.",
|
||||||
|
"category": "Customize Preferences",
|
||||||
|
"panel": "2",
|
||||||
|
"Order": "a068_",
|
||||||
|
"Type": "Toggle"
|
||||||
|
},
|
||||||
"WPFchangedns": {
|
"WPFchangedns": {
|
||||||
"Content": "DNS",
|
"Content": "DNS",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
|
477
edgeremoval.ps1
477
edgeremoval.ps1
@ -15,11 +15,6 @@ if ($also_remove_webview -eq 1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Administrative Privileges Check
|
# Administrative Privileges Check
|
||||||
|
|
||||||
# Get the 'SetPrivilege' method from System.Diagnostics.Process type
|
|
||||||
$setPrivilegeMethod = [System.Diagnostics.Process].GetMethod('SetPrivilege', [System.Reflection.BindingFlags]::NonPublic -bor [System.Reflection.BindingFlags]::Static)
|
|
||||||
|
|
||||||
# List of privileges to set
|
|
||||||
$privileges = @(
|
$privileges = @(
|
||||||
'SeSecurityPrivilege',
|
'SeSecurityPrivilege',
|
||||||
'SeTakeOwnershipPrivilege',
|
'SeTakeOwnershipPrivilege',
|
||||||
@ -27,44 +22,34 @@ $privileges = @(
|
|||||||
'SeRestorePrivilege'
|
'SeRestorePrivilege'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Invoke the method for each privilege
|
|
||||||
foreach ($privilege in $privileges) {
|
foreach ($privilege in $privileges) {
|
||||||
$setPrivilegeMethod.Invoke($null, @($privilege, 2))
|
[System.Diagnostics.Process]::SetPrivilege($privilege, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Edge Removal Procedures
|
# Edge Removal Procedures
|
||||||
|
|
||||||
# Define processes to shut down
|
|
||||||
$processesToShutdown = @(
|
$processesToShutdown = @(
|
||||||
'explorer', 'Widgets', 'widgetservice', 'msedgewebview2', 'MicrosoftEdge*', 'chredge',
|
'explorer', 'Widgets', 'widgetservice', 'msedgewebview2', 'MicrosoftEdge*', 'chredge',
|
||||||
'msedge', 'edge', 'msteams', 'msfamily', 'WebViewHost', 'Clipchamp'
|
'msedge', 'edge', 'msteams', 'msfamily', 'WebViewHost', 'Clipchamp'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Kill explorer process
|
|
||||||
Stop-Process -Name "explorer" -Force -ErrorAction SilentlyContinue
|
Stop-Process -Name "explorer" -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
# Kill the processes from the list
|
|
||||||
$processesToShutdown | ForEach-Object {
|
$processesToShutdown | ForEach-Object {
|
||||||
Stop-Process -Name $_ -Force -ErrorAction SilentlyContinue
|
Stop-Process -Name $_ -Force -ErrorAction SilentlyContinue
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set path for Edge executable
|
|
||||||
$MS = ($env:ProgramFiles, ${env:ProgramFiles(x86)})[[Environment]::Is64BitOperatingSystem] + '\Microsoft\Edge\Application\msedge.exe'
|
$MS = ($env:ProgramFiles, ${env:ProgramFiles(x86)})[[Environment]::Is64BitOperatingSystem] + '\Microsoft\Edge\Application\msedge.exe'
|
||||||
|
|
||||||
# Clean up certain registry entries
|
|
||||||
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\msedge.exe" -Recurse -ErrorAction SilentlyContinue
|
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\msedge.exe" -Recurse -ErrorAction SilentlyContinue
|
||||||
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ie_to_edge_stub.exe" -Recurse -ErrorAction SilentlyContinue
|
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ie_to_edge_stub.exe" -Recurse -ErrorAction SilentlyContinue
|
||||||
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\microsoft-edge' -Recurse -ErrorAction SilentlyContinue
|
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\microsoft-edge' -Recurse -ErrorAction SilentlyContinue
|
||||||
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\MSEdgeHTM' -Recurse -ErrorAction SilentlyContinue
|
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\MSEdgeHTM' -Recurse -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
# Create new registry entries
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Force -ErrorAction SilentlyContinue
|
New-Item -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Force -ErrorAction SilentlyContinue
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Name '(Default)' -Value "`"$MS`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Name '(Default)' -Value "`"$MS`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Force -ErrorAction SilentlyContinue
|
New-Item -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Force -ErrorAction SilentlyContinue
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Name '(Default)' -Value "`"$MS`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Name '(Default)' -Value "`"$MS`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
# Remove certain registry properties
|
|
||||||
$registryPaths = @('HKLM:\SOFTWARE\Policies', 'HKLM:\SOFTWARE', 'HKLM:\SOFTWARE\WOW6432Node')
|
$registryPaths = @('HKLM:\SOFTWARE\Policies', 'HKLM:\SOFTWARE', 'HKLM:\SOFTWARE\WOW6432Node')
|
||||||
$edgeProperties = @('InstallDefault', 'Install{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}', 'Install{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}')
|
$edgeProperties = @('InstallDefault', 'Install{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}', 'Install{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}')
|
||||||
foreach ($path in $registryPaths) {
|
foreach ($path in $registryPaths) {
|
||||||
@ -84,7 +69,6 @@ foreach ($base in $registryBases) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Clear specific registry keys
|
|
||||||
$registryPaths = @('HKCU:', 'HKLM:')
|
$registryPaths = @('HKCU:', 'HKLM:')
|
||||||
$nodes = @('', '\Wow6432Node')
|
$nodes = @('', '\Wow6432Node')
|
||||||
foreach ($regPath in $registryPaths) {
|
foreach ($regPath in $registryPaths) {
|
||||||
@ -97,7 +81,6 @@ foreach ($regPath in $registryPaths) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Locate setup.exe and ie_to_edge_stub.exe
|
|
||||||
$foldersToSearch = @('LocalApplicationData', 'ProgramFilesX86', 'ProgramFiles') | ForEach-Object {
|
$foldersToSearch = @('LocalApplicationData', 'ProgramFilesX86', 'ProgramFiles') | ForEach-Object {
|
||||||
[Environment]::GetFolderPath($_)
|
[Environment]::GetFolderPath($_)
|
||||||
}
|
}
|
||||||
@ -112,7 +95,6 @@ foreach ($folder in $foldersToSearch) {
|
|||||||
Where-Object { $_.FullName -notlike '*EdgeWebView*' }
|
Where-Object { $_.FullName -notlike '*EdgeWebView*' }
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create directory and copy ie_to_edge_stub.exe to it
|
|
||||||
$destinationDir = "$env:SystemDrive\Scripts"
|
$destinationDir = "$env:SystemDrive\Scripts"
|
||||||
New-Item -Path $destinationDir -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
|
New-Item -Path $destinationDir -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
|
||||||
|
|
||||||
@ -125,342 +107,147 @@ foreach ($bhoFile in $bhoFiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
## Work on Appx Removals
|
## Work on Appx Removals
|
||||||
|
|
||||||
# Retrieve AppX provisioned packages and all AppX packages
|
|
||||||
$provisioned = Get-AppxProvisionedPackage -Online
|
$provisioned = Get-AppxProvisionedPackage -Online
|
||||||
$appxpackage = Get-AppxPackage -AllUsers
|
$appxpackage = Get-AppxPackage -AllUsers
|
||||||
|
|
||||||
# Initialize empty array for EndOfLife packages
|
|
||||||
$eol = @()
|
$eol = @()
|
||||||
|
|
||||||
# Define user SIDs and retrieve them from the registry
|
$store = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Store'
|
||||||
$store = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore'
|
$storeP = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Store\InstalledApplications'
|
||||||
$users = @('S-1-5-18')
|
foreach ($app in $appxpackage) {
|
||||||
if (Test-Path $store) {
|
$name = $app.Name
|
||||||
$users += (Get-ChildItem $store -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -like '*S-1-5-21*' }).PSChildName
|
if ($app.Name -eq "Microsoft.Edge") {
|
||||||
}
|
$eol += $name
|
||||||
|
} elseif ($app.Name -eq "Microsoft.EdgeBeta" -or $app.Name -eq "Microsoft.EdgeDev" -or $app.Name -eq "Microsoft.EdgeCanary" -or $app.Name -eq "Microsoft.MicrosoftEdge") {
|
||||||
# Process AppX packages for removal
|
$eol += $name
|
||||||
foreach ($choice in $remove_appx) {
|
|
||||||
if ([string]::IsNullOrWhiteSpace($choice)) { continue }
|
|
||||||
|
|
||||||
# Process provisioned packages
|
|
||||||
$provisioned | Where-Object { $_.PackageName -like "*$choice*" } | ForEach-Object {
|
|
||||||
if ($skip -Contains $_.PackageName) { return }
|
|
||||||
|
|
||||||
$PackageName = $_.PackageName
|
|
||||||
$PackageFamilyName = ($appxpackage | Where-Object { $_.Name -eq $_.DisplayName }).PackageFamilyName
|
|
||||||
|
|
||||||
# Add registry entries
|
|
||||||
New-Item -Path "$store\Deprovisioned\$PackageFamilyName" -Force -ErrorAction SilentlyContinue | Out-Null
|
|
||||||
$users | ForEach-Object {
|
|
||||||
New-Item -Path "$store\EndOfLife\$_\$PackageName" -Force -ErrorAction SilentlyContinue | Out-Null
|
|
||||||
}
|
|
||||||
$eol += $PackageName
|
|
||||||
|
|
||||||
# Modify non-removable app policy and remove package
|
|
||||||
dism /online /set-nonremovableapppolicy /packagefamily:$PackageFamilyName /nonremovable:0 | Out-Null
|
|
||||||
Remove-AppxProvisionedPackage -PackageName $PackageName -Online -AllUsers | Out-Null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Process all AppX packages
|
|
||||||
$appxpackage | Where-Object { $_.PackageFullName -like "*$choice*" } | ForEach-Object {
|
|
||||||
if ($skip -Contains $_.PackageFullName) { return }
|
|
||||||
|
|
||||||
$PackageFullName = $_.PackageFullName
|
|
||||||
|
|
||||||
# Add registry entries
|
|
||||||
New-Item -Path "$store\Deprovisioned\$_.PackageFamilyName" -Force -ErrorAction SilentlyContinue | Out-Null
|
|
||||||
$users | ForEach-Object {
|
|
||||||
New-Item -Path "$store\EndOfLife\$_\$PackageFullName" -Force -ErrorAction SilentlyContinue | Out-Null
|
|
||||||
}
|
|
||||||
$eol += $PackageFullName
|
|
||||||
|
|
||||||
# Modify non-removable app policy and remove package
|
|
||||||
dism /online /set-nonremovableapppolicy /packagefamily:$PackageFamilyName /nonremovable:0 | Out-Null
|
|
||||||
Remove-AppxPackage -Package $PackageFullName -AllUsers | Out-Null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
## Run Edge setup uninstaller
|
$eolApps = $provisioned | Where-Object { $eol -contains $_.DisplayName }
|
||||||
|
|
||||||
foreach ($setup in $edges) {
|
|
||||||
if (Test-Path $setup) {
|
|
||||||
$target = if ($setup -like '*EdgeWebView*') { "--msedgewebview" } else { "--msedge" }
|
|
||||||
|
|
||||||
$removalArgs = "--uninstall $target --system-level --verbose-logging --force-uninstall"
|
|
||||||
|
|
||||||
Write-Host "$setup $removalArgs"
|
|
||||||
|
|
||||||
|
foreach ($edge in $eolApps) {
|
||||||
|
$edgeName = $edge.DisplayName
|
||||||
|
if (-not ($skip -contains $edgeName)) {
|
||||||
try {
|
try {
|
||||||
Start-Process -FilePath $setup -ArgumentList $removalArgs -Wait
|
Remove-AppxProvisionedPackage -Online -PackageName $edgeName -ErrorAction SilentlyContinue
|
||||||
|
} catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($edge in $appxpackage) {
|
||||||
|
$edgeName = $edge.Name
|
||||||
|
if ($eol -contains $edgeName) {
|
||||||
|
if (-not ($skip -contains $edgeName)) {
|
||||||
|
try {
|
||||||
|
Remove-AppxPackage -Package $edgeName -AllUsers -ErrorAction SilentlyContinue
|
||||||
|
} catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
## Redirect shortcuts
|
||||||
|
$shortcut_path = "$env:Public\Desktop"
|
||||||
|
$shortcut_file = 'Microsoft Edge.lnk'
|
||||||
|
$full_path = Join-Path -Path $shortcut_path -ChildPath $shortcut_file
|
||||||
|
|
||||||
|
if (Test-Path $full_path) {
|
||||||
|
Remove-Item -Path $full_path -Force -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
|
||||||
|
$shortcut_path = "$env:ProgramData\Microsoft\Windows\Start Menu\Programs"
|
||||||
|
$shortcut_file = 'Microsoft Edge.lnk'
|
||||||
|
$full_path = Join-Path -Path $shortcut_path -ChildPath $shortcut_file
|
||||||
|
|
||||||
|
if (Test-Path $full_path) {
|
||||||
|
Remove-Item -Path $full_path -Force -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
|
||||||
|
$edgePolicy = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge'
|
||||||
|
if (-not (Test-Path $edgePolicy)) {
|
||||||
|
New-Item -Path $edgePolicy -Force | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
$edgePrefs = @{
|
||||||
|
'Dword' = @{
|
||||||
|
'BrowserReplacementEnabled' = 1
|
||||||
|
'HideFirstRunExperience' = 1
|
||||||
|
'HideImportEdgeFavoritesPrompt' = 1
|
||||||
|
'HideSyncSetupExperience' = 1
|
||||||
|
'FavoritesBarVisibility' = 1
|
||||||
|
}
|
||||||
|
'String' = @{
|
||||||
|
'AutoplayAllowed' = 'AllowOnce'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($entryType in $edgePrefs.Keys) {
|
||||||
|
foreach ($prefName in $edgePrefs[$entryType].Keys) {
|
||||||
|
Set-ItemProperty -Path $edgePolicy -Name $prefName -Value $edgePrefs[$entryType][$prefName] -Type $entryType -Force
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Output Results
|
||||||
|
Write-Host "Edge Removal Complete" -ForegroundColor Green
|
||||||
|
|
||||||
|
# Define constants and initial configuration
|
||||||
|
$ScriptVersion = "2023.05.10"
|
||||||
|
$EdgeProcessesToShutdown = @('explorer', 'Widgets', 'widgetservice', 'msedgewebview2', 'MicrosoftEdge*', 'chredge', 'msedge', 'edge', 'msteams', 'msfamily', 'WebViewHost', 'Clipchamp')
|
||||||
|
$EdgeRemovalOptions = @{
|
||||||
|
RemoveWin32 = @("Microsoft Edge", "Microsoft Edge Update")
|
||||||
|
RemoveAppx = @("MicrosoftEdge")
|
||||||
|
Skip = @() # Optional: @("DevTools")
|
||||||
|
AlsoRemoveWebView = $false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Define main function to remove Microsoft Edge components
|
||||||
|
function Remove-MicrosoftEdge {
|
||||||
|
[CmdletBinding()]
|
||||||
|
param()
|
||||||
|
|
||||||
|
# Function to shutdown processes related to Microsoft Edge
|
||||||
|
function Stop-EdgeProcesses {
|
||||||
|
$EdgeProcessesToShutdown | ForEach-Object {
|
||||||
|
Stop-Process -Name $_ -Force -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to remove registry entries related to Microsoft Edge
|
||||||
|
function Remove-EdgeRegistryEntries {
|
||||||
|
# Clean up certain registry entries
|
||||||
|
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\msedge.exe" -Recurse -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ie_to_edge_stub.exe" -Recurse -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\microsoft-edge' -Recurse -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path 'Registry::HKEY_Users\S-1-5-21*\Software\Classes\MSEdgeHTM' -Recurse -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
# Create new registry entries
|
||||||
|
$EdgeExecutablePath = ($env:ProgramFiles, ${env:ProgramFiles(x86)})[[Environment]::Is64BitOperatingSystem] + '\Microsoft\Edge\Application\msedge.exe'
|
||||||
|
New-Item -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Force -ErrorAction SilentlyContinue
|
||||||
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Name '(Default)' -Value "`"$EdgeExecutablePath`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
New-Item -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Force -ErrorAction SilentlyContinue
|
||||||
|
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Name '(Default)' -Value "`"$EdgeExecutablePath`" --single-argument %%1" -Force -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to remove Microsoft Edge AppX packages
|
||||||
|
function Remove-EdgeAppxPackages {
|
||||||
|
$EdgeRemovalOptions.RemoveAppx | ForEach-Object {
|
||||||
|
# Remove provisioned packages
|
||||||
|
Get-AppxProvisionedPackage -Online | Where-Object { $_.PackageName -like "*$_*" -and $EdgeRemovalOptions.Skip -notcontains $_.PackageName } | Remove-AppxProvisionedPackage -Online -AllUsers -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
# Remove installed packages
|
||||||
|
Get-AppxPackage -AllUsers | Where-Object { $_.PackageFullName -like "*$_*" -and $EdgeRemovalOptions.Skip -notcontains $_.PackageFullName } | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to remove Microsoft Edge processes, registry entries, and AppX packages
|
||||||
|
try {
|
||||||
|
Stop-EdgeProcesses
|
||||||
|
Remove-EdgeRegistryEntries
|
||||||
|
Remove-EdgeAppxPackages
|
||||||
|
Write-Output "Microsoft Edge components have been successfully removed."
|
||||||
} catch {
|
} catch {
|
||||||
# You may want to add logging or other error handling here.
|
Write-Error "Failed to remove Microsoft Edge components: $_"
|
||||||
}
|
|
||||||
|
|
||||||
while ((Get-Process -Name 'setup', 'MicrosoftEdge*' -ErrorAction SilentlyContinue).Path -like '*\Microsoft\Edge*') {
|
|
||||||
Start-Sleep -Seconds 3
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
## Cleanup
|
# Execute the main function
|
||||||
|
Remove-MicrosoftEdge
|
||||||
# Define necessary paths and variables
|
|
||||||
$edgePaths = $env:ProgramFiles, ${env:ProgramFiles(x86)}
|
|
||||||
$appDataPath = [Environment]::GetFolderPath('ApplicationData')
|
|
||||||
|
|
||||||
# Uninstall Microsoft Edge Update
|
|
||||||
foreach ($path in $edgePaths) {
|
|
||||||
$edgeUpdateExe = "$path\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe"
|
|
||||||
if (Test-Path $edgeUpdateExe) {
|
|
||||||
Write-Host $edgeUpdateExe /uninstall
|
|
||||||
Start-Process -FilePath $edgeUpdateExe -ArgumentList '/uninstall' -Wait
|
|
||||||
while ((Get-Process -Name 'setup','MicrosoftEdge*' -ErrorAction SilentlyContinue).Path -like '*\Microsoft\Edge*') {
|
|
||||||
Start-Sleep -Seconds 3
|
|
||||||
}
|
|
||||||
if ($also_remove_webview -eq 1) {
|
|
||||||
foreach ($regPath in 'HKCU:', 'HKLM:') {
|
|
||||||
foreach ($node in '', '\Wow6432Node') {
|
|
||||||
Remove-Item -Path "$regPath\SOFTWARE$node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge Update" -Recurse -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Remove-Item -Path "$path\Microsoft\EdgeUpdate" -Recurse -Force -ErrorAction SilentlyContinue
|
|
||||||
Unregister-ScheduledTask -TaskName 'MicrosoftEdgeUpdate*' -Confirm:$false -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Remove Edge shortcuts
|
|
||||||
Remove-Item -Path "$appDataPath\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Tombstones\Microsoft Edge.lnk" -Force -ErrorAction SilentlyContinue
|
|
||||||
Remove-Item -Path "$appDataPath\Microsoft\Internet Explorer\Quick Launch\Microsoft Edge.lnk" -Force -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
# Revert settings related to Microsoft Edge
|
|
||||||
foreach ($sid in $users) {
|
|
||||||
foreach ($packageName in $eol) {
|
|
||||||
Remove-Item -Path "$store\EndOfLife\$sid\$packageName" -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set policies to prevent unsolicited reinstalls of Microsoft Edge
|
|
||||||
$registryPaths = @('HKLM:\SOFTWARE\Policies', 'HKLM:\SOFTWARE', 'HKLM:\SOFTWARE\WOW6432Node')
|
|
||||||
$edgeUpdatePolicies = @{
|
|
||||||
'InstallDefault' = 0;
|
|
||||||
'Install{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}' = 0;
|
|
||||||
'Install{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}' = 1;
|
|
||||||
'DoNotUpdateToEdgeWithChromium' = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($path in $registryPaths) {
|
|
||||||
New-Item -Path "$path\Microsoft\EdgeUpdate" -Force -ErrorAction SilentlyContinue | Out-Null
|
|
||||||
foreach ($policy in $edgeUpdatePolicies.GetEnumerator()) {
|
|
||||||
Set-ItemProperty -Path "$path\Microsoft\EdgeUpdate" -Name $policy.Key -Value $policy.Value -Type Dword -Force
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$edgeUpdateActions = @('on-os-upgrade', 'on-logon', 'on-logon-autolaunch', 'on-logon-startup-boost')
|
|
||||||
$edgeUpdateClients = @(
|
|
||||||
'Microsoft\EdgeUpdate\Clients\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}',
|
|
||||||
'Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}'
|
|
||||||
)
|
|
||||||
foreach ($client in $edgeUpdateClients) {
|
|
||||||
foreach ($action in $edgeUpdateActions) {
|
|
||||||
foreach ($regBase in 'HKLM:\SOFTWARE', 'HKLM:\SOFTWARE\Wow6432Node') {
|
|
||||||
$regPath = "$regBase\$client\Commands\$action"
|
|
||||||
New-Item -Path $regPath -Force -ErrorAction SilentlyContinue | Out-Null
|
|
||||||
Set-ItemProperty -Path $regPath -Name 'CommandLine' -Value 'systray.exe' -Force
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
## Redirect Edge Shortcuts
|
|
||||||
|
|
||||||
# Define Microsoft Edge Paths
|
|
||||||
$MSEP = ($env:ProgramFiles, ${env:ProgramFiles(x86)})[[Environment]::Is64BitOperatingSystem] + '\Microsoft\Edge\Application'
|
|
||||||
$IFEO = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options'
|
|
||||||
$MIN = ('--headless', '--width 1 --height 1')[([environment]::OSVersion.Version.Build) -gt 25179]
|
|
||||||
$CMD = "$env:systemroot\system32\conhost.exe $MIN"
|
|
||||||
$DIR = "$env:SystemDrive\Scripts"
|
|
||||||
|
|
||||||
# Setup Microsoft Edge Registry Entries
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Force | Out-Null
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge" -Name '(Default)' -Value 'URL:microsoft-edge' -Force
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge" -Name 'URL Protocol' -Value '' -Force
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge" -Name 'NoOpenWith' -Value '' -Force
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\microsoft-edge\shell\open\command" -Name '(Default)' -Value "`"$DIR\ie_to_edge_stub.exe`" %1" -Force
|
|
||||||
|
|
||||||
# Setup MSEdgeHTM Registry Entries
|
|
||||||
New-Item -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Force | Out-Null
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM" -Name 'NoOpenWith' -Value '' -Force
|
|
||||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\MSEdgeHTM\shell\open\command" -Name '(Default)' -Value "`"$DIR\ie_to_edge_stub.exe`" %1" -Force
|
|
||||||
|
|
||||||
# Setup Image File Execution Options for Edge and Edge WebView
|
|
||||||
$exeSettings = @(
|
|
||||||
@{ ExeName = 'ie_to_edge_stub.exe'; Debugger = "$CMD $DIR\OpenWebSearch.cmd"; FilterPath = "$DIR\ie_to_edge_stub.exe" },
|
|
||||||
@{ ExeName = 'msedge.exe'; Debugger = "$CMD $DIR\OpenWebSearch.cmd"; FilterPath = "$MSEP\msedge.exe" }
|
|
||||||
)
|
|
||||||
|
|
||||||
foreach ($setting in $exeSettings) {
|
|
||||||
New-Item -Path "$IFEO\$($setting.ExeName)\0" -Force | Out-Null
|
|
||||||
Set-ItemProperty -Path "$IFEO\$($setting.ExeName)" -Name 'UseFilter' -Value 1 -Type Dword -Force
|
|
||||||
Set-ItemProperty -Path "$IFEO\$($setting.ExeName)\0" -Name 'FilterFullPath' -Value $setting.FilterPath -Force
|
|
||||||
Set-ItemProperty -Path "$IFEO\$($setting.ExeName)\0" -Name 'Debugger' -Value $setting.Debugger -Force
|
|
||||||
}
|
|
||||||
|
|
||||||
# Write OpenWebSearch Batch Script
|
|
||||||
$OpenWebSearch = @'
|
|
||||||
@echo off
|
|
||||||
@title OpenWebSearch Redux
|
|
||||||
|
|
||||||
:: Minimize prompt
|
|
||||||
for /f %%E in ('"prompt $E$S & for %%e in (1) do rem"') do echo;%%E[2t >nul 2>&1
|
|
||||||
|
|
||||||
:: Get default browser from registry
|
|
||||||
call :get_registry_value "HKCU\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice" ProgID DefaultBrowser
|
|
||||||
if not defined DefaultBrowser (
|
|
||||||
echo Error: Failed to get default browser from registry.
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
if /i "%DefaultBrowser%" equ "MSEdgeHTM" (
|
|
||||||
echo Error: Default browser is set to Edge! Change it or remove OpenWebSearch script.
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
:: Get browser command line
|
|
||||||
call :get_registry_value "HKCR\%DefaultBrowser%\shell\open\command" "" BrowserCommand
|
|
||||||
if not defined BrowserCommand (
|
|
||||||
echo Error: Failed to get browser command from registry.
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
set Browser=& for %%i in (%BrowserCommand%) do if not defined Browser set "Browser=%%~i"
|
|
||||||
|
|
||||||
:: Set fallback for Edge
|
|
||||||
call :get_registry_value "HKCR\MSEdgeMHT\shell\open\command" "" FallBack
|
|
||||||
set EdgeCommand=& for %%i in (%FallBack%) do if not defined EdgeCommand set "EdgeCommand=%%~i"
|
|
||||||
|
|
||||||
:: Parse command line arguments and check for redirect or noop conditions
|
|
||||||
set "URI=" & set "URL=" & set "NOOP=" & set "PassThrough=%EdgeCommand:msedge=edge%"
|
|
||||||
set "CommandLineArgs=%CMDCMDLINE:"=``% "
|
|
||||||
call :parse_arguments
|
|
||||||
|
|
||||||
if defined NOOP (
|
|
||||||
if not exist "%PassThrough%" (
|
|
||||||
echo Error: PassThrough path doesn't exist.
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
start "" "%PassThrough%" %ParsedArgs%
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
:: Decode URL
|
|
||||||
call :decode_url
|
|
||||||
if not defined URL (
|
|
||||||
echo Error: Failed to decode URL.
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
:: Open URL in default browser
|
|
||||||
start "" "%Browser%" "%URL%"
|
|
||||||
exit
|
|
||||||
|
|
||||||
:: Functions
|
|
||||||
|
|
||||||
:get_registry_value
|
|
||||||
setlocal
|
|
||||||
set regQuery=reg query "%~1" /v %2 /z /se "," /f /e
|
|
||||||
if "%~2" equ "" set regQuery=reg query "%~1" /ve /z /se "," /f /e
|
|
||||||
for /f "skip=2 tokens=* delims=" %%V in ('%regQuery% 2^>nul') do set "result=%%V"
|
|
||||||
if defined result (set "result=%result:*) =%") else (set "%~3=")
|
|
||||||
endlocal & set "%~3=%result%"
|
|
||||||
exit /b
|
|
||||||
|
|
||||||
:decode_url
|
|
||||||
:: Brute URL percent decoding
|
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
set "decoded=%URL:!=}%"
|
|
||||||
call :brute_decode
|
|
||||||
endlocal & set "URL=%decoded%"
|
|
||||||
exit /b
|
|
||||||
|
|
||||||
:parse_arguments
|
|
||||||
:: Remove specific substrings from arguments
|
|
||||||
set "CommandLineArgs=%CommandLineArgs:*ie_to_edge_stub.exe`` =%"
|
|
||||||
set "CommandLineArgs=%CommandLineArgs:*ie_to_edge_stub.exe =%"
|
|
||||||
set "CommandLineArgs=%CommandLineArgs:*msedge.exe`` =%"
|
|
||||||
set "CommandLineArgs=%CommandLineArgs:*msedge.exe =%"
|
|
||||||
|
|
||||||
:: Remove any trailing spaces
|
|
||||||
if "%CommandLineArgs:~-1%"==" " set "CommandLineArgs=%CommandLineArgs:~0,-1%"
|
|
||||||
|
|
||||||
:: Check if arguments are a redirect or URL
|
|
||||||
set "RedirectArg=%CommandLineArgs:microsoft-edge=%"
|
|
||||||
set "UrlArg=%CommandLineArgs:http=%"
|
|
||||||
set "ParsedArgs=%CommandLineArgs:``="%"
|
|
||||||
|
|
||||||
:: Set NOOP flag if no changes to arguments
|
|
||||||
if "%CommandLineArgs%" equ "%RedirectArg%" (set NOOP=1) else if "%CommandLineArgs%" equ "%UrlArg%" (set NOOP=1)
|
|
||||||
|
|
||||||
:: Extract URL if present
|
|
||||||
if not defined NOOP (
|
|
||||||
set "URL=%CommandLineArgs:*microsoft-edge=%"
|
|
||||||
set "URL=http%URL:*http=%"
|
|
||||||
if "%URL:~-2%"=="``" set "URL=%URL:~0,-2%"
|
|
||||||
)
|
|
||||||
exit /b
|
|
||||||
|
|
||||||
|
|
||||||
:brute_decode
|
|
||||||
:: Brute force URL percent decoding
|
|
||||||
|
|
||||||
set "decoded=%decoded:%%20= %"
|
|
||||||
set "decoded=%decoded:%%21=!!"
|
|
||||||
set "decoded=%decoded:%%22="%""
|
|
||||||
set "decoded=%decoded:%%23=#%"
|
|
||||||
set "decoded=%decoded:%%24=$%"
|
|
||||||
set "decoded=%decoded:%%25=%%%"
|
|
||||||
set "decoded=%decoded:%%26=&%"
|
|
||||||
set "decoded=%decoded:%%27='%"
|
|
||||||
set "decoded=%decoded:%%28=(%"
|
|
||||||
set "decoded=%decoded:%%29=)%"
|
|
||||||
set "decoded=%decoded:%%2A=*%"
|
|
||||||
set "decoded=%decoded:%%2B=+%"
|
|
||||||
set "decoded=%decoded:%%2C=,%"
|
|
||||||
set "decoded=%decoded:%%2D=-%"
|
|
||||||
set "decoded=%decoded:%%2E=.%"
|
|
||||||
set "decoded=%decoded:%%2F=/%"
|
|
||||||
:: ... Continue for other encodings ...
|
|
||||||
|
|
||||||
:: Correct any double percentage signs
|
|
||||||
set "decoded=%decoded:%%%%=%"
|
|
||||||
|
|
||||||
exit /b
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'@
|
|
||||||
[io.file]::WriteAllText("$DIR\OpenWebSearch.cmd", $OpenWebSearch)
|
|
||||||
|
|
||||||
|
|
||||||
# Final Steps
|
|
||||||
|
|
||||||
# Retrieve the Edge_Removal property from the specified registry paths
|
|
||||||
$userRegPaths = Get-ChildItem -Path 'Registry::HKEY_Users\S-1-5-21*\Volatile*' -ErrorAction SilentlyContinue
|
|
||||||
$edgeRemovalPath = $userRegPaths | Get-ItemProperty -Name 'Edge_Removal' -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
# If the Edge_Removal property exists, remove it
|
|
||||||
if ($edgeRemovalPath) {
|
|
||||||
Remove-ItemProperty -Path $edgeRemovalPath.PSPath -Name 'Edge_Removal' -Force -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
|
|
||||||
# Ensure the explorer process is running
|
|
||||||
if (-not (Get-Process -Name 'explorer' -ErrorAction SilentlyContinue)) {
|
|
||||||
Start-Process 'explorer'
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -89,4 +89,13 @@ Function Get-WinUtilToggleStatus {
|
|||||||
return $true
|
return $true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($ToggleSwitch -eq "WPFToggleTaskbarWidgets") {
|
||||||
|
$TaskbarWidgets = (Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced").TaskBarDa
|
||||||
|
if($TaskbarWidgets -eq 0) {
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -40,6 +40,8 @@ function Install-WinUtilWinget {
|
|||||||
Get-WinUtilWingetLatest
|
Get-WinUtilWingetLatest
|
||||||
Write-Host "Installing Winget w/ Prerequsites`r"
|
Write-Host "Installing Winget w/ Prerequsites`r"
|
||||||
Add-AppxProvisionedPackage -Online -PackagePath $ENV:TEMP\Microsoft.DesktopAppInstaller.msixbundle -DependencyPackagePath $ENV:TEMP\Microsoft.VCLibs.x64.Desktop.appx, $ENV:TEMP\Microsoft.UI.Xaml.x64.appx -LicensePath $ENV:TEMP\License1.xml
|
Add-AppxProvisionedPackage -Online -PackagePath $ENV:TEMP\Microsoft.DesktopAppInstaller.msixbundle -DependencyPackagePath $ENV:TEMP\Microsoft.VCLibs.x64.Desktop.appx, $ENV:TEMP\Microsoft.UI.Xaml.x64.appx -LicensePath $ENV:TEMP\License1.xml
|
||||||
|
Write-Host "Manually adding Winget Sources, from Winget CDN."
|
||||||
|
Add-AppxPackage -Path https://cdn.winget.microsoft.com/cache/source.msix #Seems some installs of Winget don't add the repo source, this should makes sure that it's installed every time.
|
||||||
Write-Host "Winget Installed" -ForegroundColor Green
|
Write-Host "Winget Installed" -ForegroundColor Green
|
||||||
# Winget only needs a refresh of the environment variables to be used.
|
# Winget only needs a refresh of the environment variables to be used.
|
||||||
Write-Output "Refreshing Environment Variables...`n"
|
Write-Output "Refreshing Environment Variables...`n"
|
||||||
|
@ -54,38 +54,39 @@ function Remove-Features([switch] $dumpFeatures = $false, [switch] $keepDefender
|
|||||||
Remove-Features -keepDefender:$false
|
Remove-Features -keepDefender:$false
|
||||||
|
|
||||||
#>
|
#>
|
||||||
$appxlist = dism /English /image:$scratchDir /Get-Features | Select-String -Pattern "Feature Name : " -CaseSensitive -SimpleMatch
|
$featlist = (Get-WindowsOptionalFeature -Path $scratchDir).FeatureName
|
||||||
$appxlist = $appxlist -split "Feature Name : " | Where-Object {$_}
|
|
||||||
if ($dumpFeatures)
|
if ($dumpFeatures)
|
||||||
{
|
{
|
||||||
$appxlist > allfeaturesdump.txt
|
$featlist > allfeaturesdump.txt
|
||||||
}
|
}
|
||||||
|
|
||||||
$appxlist = $appxlist | Where-Object {
|
$featlist = $featlist | Where-Object {
|
||||||
$_ -NotLike "*Printing*" -AND
|
$_ -NotLike "*Printing*" -AND
|
||||||
$_ -NotLike "*TelnetClient*" -AND
|
$_ -NotLike "*TelnetClient*" -AND
|
||||||
$_ -NotLike "*PowerShell*" -AND
|
$_ -NotLike "*PowerShell*" -AND
|
||||||
$_ -NotLike "*NetFx*"
|
$_ -NotLike "*NetFx*" -AND
|
||||||
|
$_ -NotLike "*Media*" -AND
|
||||||
|
$_ -NotLike "*NFS*"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($keepDefender) { $appxlist = $appxlist | Where-Object { $_ -NotLike "*Defender*" }}
|
if ($keepDefender) { $featlist = $featlist | Where-Object { $_ -NotLike "*Defender*" }}
|
||||||
|
|
||||||
foreach($feature in $appxlist)
|
foreach($feature in $featlist)
|
||||||
{
|
{
|
||||||
$status = "Removing feature $feature"
|
$status = "Removing feature $feature"
|
||||||
Write-Progress -Activity "Removing features" -Status $status -PercentComplete ($counter++/$appxlist.Count*100)
|
Write-Progress -Activity "Removing features" -Status $status -PercentComplete ($counter++/$featlist.Count*100)
|
||||||
Write-Debug "Removing feature $feature"
|
Write-Debug "Removing feature $feature"
|
||||||
# dism /image:$scratchDir /Disable-Feature /FeatureName:$feature /Remove /NoRestart > $null
|
Disable-WindowsOptionalFeature -Path "$scratchDir" -FeatureName $feature -Remove -ErrorAction SilentlyContinue -NoRestart
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "Removing features" -Status "Ready" -Completed
|
Write-Progress -Activity "Removing features" -Status "Ready" -Completed
|
||||||
|
Write-Host "You can re-enable the disabled features at any time, using either Windows Update or the SxS folder in <installation media>\Sources."
|
||||||
}
|
}
|
||||||
|
|
||||||
function Remove-Packages
|
function Remove-Packages
|
||||||
{
|
{
|
||||||
$appxlist = dism /English /Image:$scratchDir /Get-Packages | Select-String -Pattern "Package Identity : " -CaseSensitive -SimpleMatch
|
$pkglist = (Get-WindowsPackage -Path "$scratchDir").PackageName
|
||||||
$appxlist = $appxlist -split "Package Identity : " | Where-Object {$_}
|
|
||||||
|
|
||||||
$appxlist = $appxlist | Where-Object {
|
$pkglist = $pkglist | Where-Object {
|
||||||
$_ -NotLike "*ApplicationModel*" -AND
|
$_ -NotLike "*ApplicationModel*" -AND
|
||||||
$_ -NotLike "*indows-Client-LanguagePack*" -AND
|
$_ -NotLike "*indows-Client-LanguagePack*" -AND
|
||||||
$_ -NotLike "*LanguageFeatures-Basic*" -AND
|
$_ -NotLike "*LanguageFeatures-Basic*" -AND
|
||||||
@ -123,11 +124,18 @@ function Remove-Packages
|
|||||||
$_ -NotLike "*UI.XaML*"
|
$_ -NotLike "*UI.XaML*"
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($appx in $appxlist)
|
foreach ($pkg in $pkglist)
|
||||||
{
|
{
|
||||||
$status = "Removing $appx"
|
try {
|
||||||
Write-Progress -Activity "Removing Apps" -Status $status -PercentComplete ($counter++/$appxlist.Count*100)
|
$status = "Removing $pkg"
|
||||||
dism /English /image:$scratchDir /Remove-Package /PackageName:$appx /NoRestart
|
Write-Progress -Activity "Removing Apps" -Status $status -PercentComplete ($counter++/$pkglist.Count*100)
|
||||||
|
Remove-WindowsPackage -Path "$scratchDir" -PackageName $pkg -NoRestart -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
# This can happen if the package that is being removed is a permanent one, like FodMetadata
|
||||||
|
Write-Host "Could not remove OS package $($pkg)"
|
||||||
|
continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "Removing Apps" -Status "Ready" -Completed
|
Write-Progress -Activity "Removing Apps" -Status "Ready" -Completed
|
||||||
}
|
}
|
||||||
@ -167,7 +175,7 @@ function Remove-ProvisionedPackages([switch] $keepSecurity = $false)
|
|||||||
{
|
{
|
||||||
$status = "Removing Provisioned $($appx.PackageName)"
|
$status = "Removing Provisioned $($appx.PackageName)"
|
||||||
Write-Progress -Activity "Removing Provisioned Apps" -Status $status -PercentComplete ($counter++/$appxProvisionedPackages.Count*100)
|
Write-Progress -Activity "Removing Provisioned Apps" -Status $status -PercentComplete ($counter++/$appxProvisionedPackages.Count*100)
|
||||||
dism /English /image:$scratchDir /Remove-ProvisionedAppxPackage /PackageName:$($appx.PackageName) /NoRestart
|
Remove-AppxProvisionedPackage -Path $scratchDir -PackageName $appx.PackageName -ErrorAction SilentlyContinue
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "Removing Provisioned Apps" -Status "Ready" -Completed
|
Write-Progress -Activity "Removing Provisioned Apps" -Status "Ready" -Completed
|
||||||
}
|
}
|
||||||
|
34
functions/private/Invoke-WinUtilTaskbarWidgets.ps1
Normal file
34
functions/private/Invoke-WinUtilTaskbarWidgets.ps1
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
function Invoke-WinUtilTaskbarWidgets {
|
||||||
|
<#
|
||||||
|
|
||||||
|
.SYNOPSIS
|
||||||
|
Enable/Disable Taskbar Widgets
|
||||||
|
|
||||||
|
.PARAMETER Enabled
|
||||||
|
Indicates whether to enable or disable Taskbar Widgets
|
||||||
|
|
||||||
|
#>
|
||||||
|
Param($Enabled)
|
||||||
|
Try{
|
||||||
|
if ($Enabled -eq $false){
|
||||||
|
Write-Host "Enabling Taskbar Widgets"
|
||||||
|
$value = 1
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host "Disabling Taskbar Widgets"
|
||||||
|
$value = 0
|
||||||
|
}
|
||||||
|
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
||||||
|
Set-ItemProperty -Path $Path -Name TaskbarDa -Value $value
|
||||||
|
}
|
||||||
|
Catch [System.Security.SecurityException] {
|
||||||
|
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
||||||
|
}
|
||||||
|
Catch [System.Management.Automation.ItemNotFoundException] {
|
||||||
|
Write-Warning $psitem.Exception.ErrorRecord
|
||||||
|
}
|
||||||
|
Catch{
|
||||||
|
Write-Warning "Unable to set $Name due to unhandled exception"
|
||||||
|
Write-Warning $psitem.Exception.StackTrace
|
||||||
|
}
|
||||||
|
}
|
@ -117,7 +117,7 @@ public class PowerManagement {
|
|||||||
if (Test-Path $driverPath)
|
if (Test-Path $driverPath)
|
||||||
{
|
{
|
||||||
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
||||||
dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host
|
Add-WindowsDriver -Path "$scratchDir" -Recurse -Driver "$driverPath"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -335,7 +335,7 @@ public class PowerManagement {
|
|||||||
if (Test-Path $driverPath)
|
if (Test-Path $driverPath)
|
||||||
{
|
{
|
||||||
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
||||||
dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host
|
Add-WindowsDriver -Path "$scratchDir" -Driver "$driverPath" -Recurse
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -25,5 +25,6 @@ function Invoke-WPFToggle {
|
|||||||
"WPFToggleSnapFlyout" {Invoke-WinUtilSnapFlyout $(Get-WinUtilToggleStatus WPFToggleSnapFlyout)}
|
"WPFToggleSnapFlyout" {Invoke-WinUtilSnapFlyout $(Get-WinUtilToggleStatus WPFToggleSnapFlyout)}
|
||||||
"WPFToggleMouseAcceleration" {Invoke-WinUtilMouseAcceleration $(Get-WinUtilToggleStatus WPFToggleMouseAcceleration)}
|
"WPFToggleMouseAcceleration" {Invoke-WinUtilMouseAcceleration $(Get-WinUtilToggleStatus WPFToggleMouseAcceleration)}
|
||||||
"WPFToggleStickyKeys" {Invoke-WinUtilStickyKeys $(Get-WinUtilToggleStatus WPFToggleStickyKeys)}
|
"WPFToggleStickyKeys" {Invoke-WinUtilStickyKeys $(Get-WinUtilToggleStatus WPFToggleStickyKeys)}
|
||||||
|
"WPFToggleTaskbarWidgets" {Invoke-WinUtilTaskbarWidgets $(Get-WinUtilToggleStatus WPFToggleTaskbarWidgets)}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -381,7 +381,7 @@ $sync["CheckboxFilter"].Add_TextChanged({
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
$textToSearch = $sync.CheckboxFilter.Text
|
$textToSearch = $sync.CheckboxFilter.Text.ToLower()
|
||||||
$checkBoxName = $CheckBox.Key
|
$checkBoxName = $CheckBox.Key
|
||||||
$textBlockName = $checkBoxName + "Link"
|
$textBlockName = $checkBoxName + "Link"
|
||||||
|
|
||||||
|
190
winutil.ps1
190
winutil.ps1
@ -10,7 +10,7 @@
|
|||||||
Author : Chris Titus @christitustech
|
Author : Chris Titus @christitustech
|
||||||
Runspace Author: @DeveloperDurp
|
Runspace Author: @DeveloperDurp
|
||||||
GitHub : https://github.com/ChrisTitusTech
|
GitHub : https://github.com/ChrisTitusTech
|
||||||
Version : 24.03.30
|
Version : 24.04.16
|
||||||
#>
|
#>
|
||||||
param (
|
param (
|
||||||
[switch]$Debug,
|
[switch]$Debug,
|
||||||
@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms
|
|||||||
# Variable to sync between runspaces
|
# Variable to sync between runspaces
|
||||||
$sync = [Hashtable]::Synchronized(@{})
|
$sync = [Hashtable]::Synchronized(@{})
|
||||||
$sync.PSScriptRoot = $PSScriptRoot
|
$sync.PSScriptRoot = $PSScriptRoot
|
||||||
$sync.version = "24.03.30"
|
$sync.version = "24.04.16"
|
||||||
$sync.configs = @{}
|
$sync.configs = @{}
|
||||||
$sync.ProcessRunning = $false
|
$sync.ProcessRunning = $false
|
||||||
|
|
||||||
@ -575,6 +575,15 @@ Function Get-WinUtilToggleStatus {
|
|||||||
return $true
|
return $true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($ToggleSwitch -eq "WPFToggleTaskbarWidgets") {
|
||||||
|
$TaskbarWidgets = (Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced").TaskBarDa
|
||||||
|
if($TaskbarWidgets -eq 0) {
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function Get-WinUtilVariables {
|
function Get-WinUtilVariables {
|
||||||
|
|
||||||
@ -777,6 +786,8 @@ function Install-WinUtilWinget {
|
|||||||
Get-WinUtilWingetLatest
|
Get-WinUtilWingetLatest
|
||||||
Write-Host "Installing Winget w/ Prerequsites`r"
|
Write-Host "Installing Winget w/ Prerequsites`r"
|
||||||
Add-AppxProvisionedPackage -Online -PackagePath $ENV:TEMP\Microsoft.DesktopAppInstaller.msixbundle -DependencyPackagePath $ENV:TEMP\Microsoft.VCLibs.x64.Desktop.appx, $ENV:TEMP\Microsoft.UI.Xaml.x64.appx -LicensePath $ENV:TEMP\License1.xml
|
Add-AppxProvisionedPackage -Online -PackagePath $ENV:TEMP\Microsoft.DesktopAppInstaller.msixbundle -DependencyPackagePath $ENV:TEMP\Microsoft.VCLibs.x64.Desktop.appx, $ENV:TEMP\Microsoft.UI.Xaml.x64.appx -LicensePath $ENV:TEMP\License1.xml
|
||||||
|
Write-Host "Manually adding Winget Sources, from Winget CDN."
|
||||||
|
Add-AppxPackage -Path https://cdn.winget.microsoft.com/cache/source.msix #Seems some installs of Winget don't add the repo source, this should makes sure that it's installed every time.
|
||||||
Write-Host "Winget Installed" -ForegroundColor Green
|
Write-Host "Winget Installed" -ForegroundColor Green
|
||||||
# Winget only needs a refresh of the environment variables to be used.
|
# Winget only needs a refresh of the environment variables to be used.
|
||||||
Write-Output "Refreshing Environment Variables...`n"
|
Write-Output "Refreshing Environment Variables...`n"
|
||||||
@ -850,38 +861,39 @@ function Remove-Features([switch] $dumpFeatures = $false, [switch] $keepDefender
|
|||||||
Remove-Features -keepDefender:$false
|
Remove-Features -keepDefender:$false
|
||||||
|
|
||||||
#>
|
#>
|
||||||
$appxlist = dism /English /image:$scratchDir /Get-Features | Select-String -Pattern "Feature Name : " -CaseSensitive -SimpleMatch
|
$featlist = (Get-WindowsOptionalFeature -Path $scratchDir).FeatureName
|
||||||
$appxlist = $appxlist -split "Feature Name : " | Where-Object {$_}
|
|
||||||
if ($dumpFeatures)
|
if ($dumpFeatures)
|
||||||
{
|
{
|
||||||
$appxlist > allfeaturesdump.txt
|
$featlist > allfeaturesdump.txt
|
||||||
}
|
}
|
||||||
|
|
||||||
$appxlist = $appxlist | Where-Object {
|
$featlist = $featlist | Where-Object {
|
||||||
$_ -NotLike "*Printing*" -AND
|
$_ -NotLike "*Printing*" -AND
|
||||||
$_ -NotLike "*TelnetClient*" -AND
|
$_ -NotLike "*TelnetClient*" -AND
|
||||||
$_ -NotLike "*PowerShell*" -AND
|
$_ -NotLike "*PowerShell*" -AND
|
||||||
$_ -NotLike "*NetFx*"
|
$_ -NotLike "*NetFx*" -AND
|
||||||
|
$_ -NotLike "*Media*" -AND
|
||||||
|
$_ -NotLike "*NFS*"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($keepDefender) { $appxlist = $appxlist | Where-Object { $_ -NotLike "*Defender*" }}
|
if ($keepDefender) { $featlist = $featlist | Where-Object { $_ -NotLike "*Defender*" }}
|
||||||
|
|
||||||
foreach($feature in $appxlist)
|
foreach($feature in $featlist)
|
||||||
{
|
{
|
||||||
$status = "Removing feature $feature"
|
$status = "Removing feature $feature"
|
||||||
Write-Progress -Activity "Removing features" -Status $status -PercentComplete ($counter++/$appxlist.Count*100)
|
Write-Progress -Activity "Removing features" -Status $status -PercentComplete ($counter++/$featlist.Count*100)
|
||||||
Write-Debug "Removing feature $feature"
|
Write-Debug "Removing feature $feature"
|
||||||
# dism /image:$scratchDir /Disable-Feature /FeatureName:$feature /Remove /NoRestart > $null
|
Disable-WindowsOptionalFeature -Path "$scratchDir" -FeatureName $feature -Remove -ErrorAction SilentlyContinue -NoRestart
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "Removing features" -Status "Ready" -Completed
|
Write-Progress -Activity "Removing features" -Status "Ready" -Completed
|
||||||
|
Write-Host "You can re-enable the disabled features at any time, using either Windows Update or the SxS folder in <installation media>\Sources."
|
||||||
}
|
}
|
||||||
|
|
||||||
function Remove-Packages
|
function Remove-Packages
|
||||||
{
|
{
|
||||||
$appxlist = dism /English /Image:$scratchDir /Get-Packages | Select-String -Pattern "Package Identity : " -CaseSensitive -SimpleMatch
|
$pkglist = (Get-WindowsPackage -Path "$scratchDir").PackageName
|
||||||
$appxlist = $appxlist -split "Package Identity : " | Where-Object {$_}
|
|
||||||
|
|
||||||
$appxlist = $appxlist | Where-Object {
|
$pkglist = $pkglist | Where-Object {
|
||||||
$_ -NotLike "*ApplicationModel*" -AND
|
$_ -NotLike "*ApplicationModel*" -AND
|
||||||
$_ -NotLike "*indows-Client-LanguagePack*" -AND
|
$_ -NotLike "*indows-Client-LanguagePack*" -AND
|
||||||
$_ -NotLike "*LanguageFeatures-Basic*" -AND
|
$_ -NotLike "*LanguageFeatures-Basic*" -AND
|
||||||
@ -919,11 +931,18 @@ function Remove-Packages
|
|||||||
$_ -NotLike "*UI.XaML*"
|
$_ -NotLike "*UI.XaML*"
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($appx in $appxlist)
|
foreach ($pkg in $pkglist)
|
||||||
{
|
{
|
||||||
$status = "Removing $appx"
|
try {
|
||||||
Write-Progress -Activity "Removing Apps" -Status $status -PercentComplete ($counter++/$appxlist.Count*100)
|
$status = "Removing $pkg"
|
||||||
dism /English /image:$scratchDir /Remove-Package /PackageName:$appx /NoRestart
|
Write-Progress -Activity "Removing Apps" -Status $status -PercentComplete ($counter++/$pkglist.Count*100)
|
||||||
|
Remove-WindowsPackage -Path "$scratchDir" -PackageName $pkg -NoRestart -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
# This can happen if the package that is being removed is a permanent one, like FodMetadata
|
||||||
|
Write-Host "Could not remove OS package $($pkg)"
|
||||||
|
continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "Removing Apps" -Status "Ready" -Completed
|
Write-Progress -Activity "Removing Apps" -Status "Ready" -Completed
|
||||||
}
|
}
|
||||||
@ -963,7 +982,7 @@ function Remove-ProvisionedPackages([switch] $keepSecurity = $false)
|
|||||||
{
|
{
|
||||||
$status = "Removing Provisioned $($appx.PackageName)"
|
$status = "Removing Provisioned $($appx.PackageName)"
|
||||||
Write-Progress -Activity "Removing Provisioned Apps" -Status $status -PercentComplete ($counter++/$appxProvisionedPackages.Count*100)
|
Write-Progress -Activity "Removing Provisioned Apps" -Status $status -PercentComplete ($counter++/$appxProvisionedPackages.Count*100)
|
||||||
dism /English /image:$scratchDir /Remove-ProvisionedAppxPackage /PackageName:$($appx.PackageName) /NoRestart
|
Remove-AppxProvisionedPackage -Path $scratchDir -PackageName $appx.PackageName -ErrorAction SilentlyContinue
|
||||||
}
|
}
|
||||||
Write-Progress -Activity "Removing Provisioned Apps" -Status "Ready" -Completed
|
Write-Progress -Activity "Removing Provisioned Apps" -Status "Ready" -Completed
|
||||||
}
|
}
|
||||||
@ -1919,6 +1938,40 @@ Function Invoke-WinUtilStickyKeys {
|
|||||||
Write-Warning $psitem.Exception.StackTrace
|
Write-Warning $psitem.Exception.StackTrace
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function Invoke-WinUtilTaskbarWidgets {
|
||||||
|
<#
|
||||||
|
|
||||||
|
.SYNOPSIS
|
||||||
|
Enable/Disable Taskbar Widgets
|
||||||
|
|
||||||
|
.PARAMETER Enabled
|
||||||
|
Indicates whether to enable or disable Taskbar Widgets
|
||||||
|
|
||||||
|
#>
|
||||||
|
Param($Enabled)
|
||||||
|
Try{
|
||||||
|
if ($Enabled -eq $false){
|
||||||
|
Write-Host "Enabling Taskbar Widgets"
|
||||||
|
$value = 1
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host "Disabling Taskbar Widgets"
|
||||||
|
$value = 0
|
||||||
|
}
|
||||||
|
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
||||||
|
Set-ItemProperty -Path $Path -Name TaskbarDa -Value $value
|
||||||
|
}
|
||||||
|
Catch [System.Security.SecurityException] {
|
||||||
|
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
||||||
|
}
|
||||||
|
Catch [System.Management.Automation.ItemNotFoundException] {
|
||||||
|
Write-Warning $psitem.Exception.ErrorRecord
|
||||||
|
}
|
||||||
|
Catch{
|
||||||
|
Write-Warning "Unable to set $Name due to unhandled exception"
|
||||||
|
Write-Warning $psitem.Exception.StackTrace
|
||||||
|
}
|
||||||
|
}
|
||||||
function Invoke-WinUtilTweaks {
|
function Invoke-WinUtilTweaks {
|
||||||
<#
|
<#
|
||||||
|
|
||||||
@ -3694,7 +3747,7 @@ public class PowerManagement {
|
|||||||
if (Test-Path $driverPath)
|
if (Test-Path $driverPath)
|
||||||
{
|
{
|
||||||
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
||||||
dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host
|
Add-WindowsDriver -Path "$scratchDir" -Recurse -Driver "$driverPath"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3912,7 +3965,7 @@ public class PowerManagement {
|
|||||||
if (Test-Path $driverPath)
|
if (Test-Path $driverPath)
|
||||||
{
|
{
|
||||||
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) "
|
||||||
dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host
|
Add-WindowsDriver -Path "$scratchDir" -Driver "$driverPath" -Recurse
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -4310,6 +4363,7 @@ function Invoke-WPFToggle {
|
|||||||
"WPFToggleSnapFlyout" {Invoke-WinUtilSnapFlyout $(Get-WinUtilToggleStatus WPFToggleSnapFlyout)}
|
"WPFToggleSnapFlyout" {Invoke-WinUtilSnapFlyout $(Get-WinUtilToggleStatus WPFToggleSnapFlyout)}
|
||||||
"WPFToggleMouseAcceleration" {Invoke-WinUtilMouseAcceleration $(Get-WinUtilToggleStatus WPFToggleMouseAcceleration)}
|
"WPFToggleMouseAcceleration" {Invoke-WinUtilMouseAcceleration $(Get-WinUtilToggleStatus WPFToggleMouseAcceleration)}
|
||||||
"WPFToggleStickyKeys" {Invoke-WinUtilStickyKeys $(Get-WinUtilToggleStatus WPFToggleStickyKeys)}
|
"WPFToggleStickyKeys" {Invoke-WinUtilStickyKeys $(Get-WinUtilToggleStatus WPFToggleStickyKeys)}
|
||||||
|
"WPFToggleTaskbarWidgets" {Invoke-WinUtilTaskbarWidgets $(Get-WinUtilToggleStatus WPFToggleTaskbarWidgets)}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function Invoke-WPFtweaksbutton {
|
function Invoke-WPFtweaksbutton {
|
||||||
@ -6255,6 +6309,14 @@ $sync.configs.applications = '{
|
|||||||
"link": "https://www.postman.com/",
|
"link": "https://www.postman.com/",
|
||||||
"winget": "Postman.Postman"
|
"winget": "Postman.Postman"
|
||||||
},
|
},
|
||||||
|
"WPFInstallpowerautomate": {
|
||||||
|
"category": "Microsoft Tools",
|
||||||
|
"choco": "powerautomatedesktop",
|
||||||
|
"content": "Power Automate",
|
||||||
|
"description": "Using Power Automate Desktop you can automate tasks on the desktop as well as the Web.",
|
||||||
|
"link": "https://www.microsoft.com/en-us/power-platform/products/power-automate",
|
||||||
|
"winget": "Microsoft.PowerAutomateDesktop"
|
||||||
|
},
|
||||||
"WPFInstallpowerbi": {
|
"WPFInstallpowerbi": {
|
||||||
"category": "Microsoft Tools",
|
"category": "Microsoft Tools",
|
||||||
"choco": "powerbi",
|
"choco": "powerbi",
|
||||||
@ -6575,6 +6637,14 @@ $sync.configs.applications = '{
|
|||||||
"link": "https://stefansundin.github.io/superf4/",
|
"link": "https://stefansundin.github.io/superf4/",
|
||||||
"winget": "StefanSundin.Superf4"
|
"winget": "StefanSundin.Superf4"
|
||||||
},
|
},
|
||||||
|
"WPFInstallswift": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Swift toolchain",
|
||||||
|
"description": "Swift is a general-purpose programming language that???s approachable for newcomers and powerful for experts.",
|
||||||
|
"link": "https://www.swift.org/",
|
||||||
|
"winget": "Swift.Toolchain"
|
||||||
|
},
|
||||||
"WPFInstallsynctrayzor": {
|
"WPFInstallsynctrayzor": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "synctrayzor",
|
"choco": "synctrayzor",
|
||||||
@ -9448,6 +9518,13 @@ $sync.configs.tweaks = '{
|
|||||||
"Name": "Scheduling Category",
|
"Name": "Scheduling Category",
|
||||||
"Value": "High",
|
"Value": "High",
|
||||||
"Type": "String"
|
"Type": "String"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"Name": "ScoobeSystemSettingEnabled",
|
||||||
|
"Value": "0",
|
||||||
|
"Type": "DWord"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
@ -9793,6 +9870,18 @@ $sync.configs.tweaks = '{
|
|||||||
"
|
"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"WPFTweaksEndTaskOnTaskbar": {
|
||||||
|
"Content": "Enable End Task With Right Click",
|
||||||
|
"Description": "Enables option to end task when right clicking a program in the taskbar",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a002_",
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\" -Name \"TaskbarEndTask\" -Type \"DWord\" -Value \"1\"
|
||||||
|
"
|
||||||
|
]
|
||||||
|
},
|
||||||
"WPFTweaksOO": {
|
"WPFTweaksOO": {
|
||||||
"Content": "Run OO Shutup",
|
"Content": "Run OO Shutup",
|
||||||
"Description": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
|
"Description": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
|
||||||
@ -9957,12 +10046,20 @@ $sync.configs.tweaks = '{
|
|||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a028_",
|
"Order": "a028_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\" "
|
"
|
||||||
|
New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\"
|
||||||
|
Write-Host Restarting explorer.exe ...
|
||||||
|
$process = Get-Process -Name \"explorer\"
|
||||||
|
Stop-Process -InputObject $process
|
||||||
|
"
|
||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
"
|
"
|
||||||
Remove-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Recurse -Confirm:$false -Force
|
Remove-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Recurse -Confirm:$false -Force
|
||||||
Write-Host Restart Needed for change
|
# Restarting Explorer in the Undo Script might not be necessary, as the Registry change without restarting Explorer does work, but just to make sure.
|
||||||
|
Write-Host Restarting explorer.exe ...
|
||||||
|
$process = Get-Process -Name \"explorer\"
|
||||||
|
Stop-Process -InputObject $process
|
||||||
"
|
"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -10172,6 +10269,14 @@ $sync.configs.tweaks = '{
|
|||||||
"Order": "a067_",
|
"Order": "a067_",
|
||||||
"Type": "Toggle"
|
"Type": "Toggle"
|
||||||
},
|
},
|
||||||
|
"WPFToggleTaskbarWidgets": {
|
||||||
|
"Content": "Taskbar Widgets",
|
||||||
|
"Description": "If Enabled then Widgets Icon in Taskbar will be shown.",
|
||||||
|
"category": "Customize Preferences",
|
||||||
|
"panel": "2",
|
||||||
|
"Order": "a068_",
|
||||||
|
"Type": "Toggle"
|
||||||
|
},
|
||||||
"WPFchangedns": {
|
"WPFchangedns": {
|
||||||
"Content": "DNS",
|
"Content": "DNS",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
@ -11137,6 +11242,9 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<CheckBox Name="WPFInstallsublimetext" Content="Sublime Text" ToolTip="Sublime Text is a sophisticated text editor for code, markup, and prose." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsublimetextLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.sublimetext.com/" />
|
<CheckBox Name="WPFInstallsublimetext" Content="Sublime Text" ToolTip="Sublime Text is a sophisticated text editor for code, markup, and prose." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsublimetextLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.sublimetext.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<CheckBox Name="WPFInstallswift" Content="Swift toolchain" ToolTip="Swift is a general-purpose programming language that???s approachable for newcomers and powerful for experts." Margin="0,0,2,0"/><TextBlock Name="WPFInstallswiftLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.swift.org/" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstalltemurin" Content="Eclipse Temurin" ToolTip="Eclipse Temurin is the open source Java SE build based upon OpenJDK." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltemurinLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://adoptium.net/temurin/" />
|
<CheckBox Name="WPFInstalltemurin" Content="Eclipse Temurin" ToolTip="Eclipse Temurin is the open source Java SE build based upon OpenJDK." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltemurinLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://adoptium.net/temurin/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@ -11276,15 +11384,15 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallprismlauncher" Content="Prism Launcher" ToolTip="Prism Launcher is a game launcher and manager designed to provide a clean and intuitive interface for organizing and launching your games." Margin="0,0,2,0"/><TextBlock Name="WPFInstallprismlauncherLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://prismlauncher.org/" />
|
<CheckBox Name="WPFInstallprismlauncher" Content="Prism Launcher" ToolTip="Prism Launcher is a game launcher and manager designed to provide a clean and intuitive interface for organizing and launching your games." Margin="0,0,2,0"/><TextBlock Name="WPFInstallprismlauncherLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://prismlauncher.org/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<CheckBox Name="WPFInstallpsremoteplay" Content="PS Remote Play" ToolTip="PS Remote Play is a free application that allows you to stream games from your PlayStation console to a PC or mobile device." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpsremoteplayLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://remoteplay.dl.playstation.net/remoteplay/lang/gb/" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
<Border Grid.Row="1" Grid.Column="2">
|
<Border Grid.Row="1" Grid.Column="2">
|
||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<CheckBox Name="WPFInstallpsremoteplay" Content="PS Remote Play" ToolTip="PS Remote Play is a free application that allows you to stream games from your PlayStation console to a PC or mobile device." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpsremoteplayLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://remoteplay.dl.playstation.net/remoteplay/lang/gb/" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallsidequest" Content="SideQuestVR" ToolTip="SideQuestVR is a community-driven platform that enables users to discover, install, and manage virtual reality content on Oculus Quest devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsidequestLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://sidequestvr.com/" />
|
<CheckBox Name="WPFInstallsidequest" Content="SideQuestVR" ToolTip="SideQuestVR is a community-driven platform that enables users to discover, install, and manage virtual reality content on Oculus Quest devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsidequestLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://sidequestvr.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@ -11328,6 +11436,9 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<CheckBox Name="WPFInstallonedrive" Content="OneDrive" ToolTip="OneDrive is a cloud storage service provided by Microsoft, allowing users to store and share files securely across devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallonedriveLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://onedrive.live.com/" />
|
<CheckBox Name="WPFInstallonedrive" Content="OneDrive" ToolTip="OneDrive is a cloud storage service provided by Microsoft, allowing users to store and share files securely across devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallonedriveLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://onedrive.live.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<CheckBox Name="WPFInstallpowerautomate" Content="Power Automate" ToolTip="Using Power Automate Desktop you can automate tasks on the desktop as well as the Web." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpowerautomateLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.microsoft.com/en-us/power-platform/products/power-automate" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallpowerbi" Content="Power BI" ToolTip="Create stunning reports and visualizations with Power BI Desktop. It puts visual analytics at your fingertips with intuitive report authoring. Drag-and-drop to place content exactly where you want it on the flexible and fluid canvas. Quickly discover patterns as you explore a single unified view of linked, interactive visualizations." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpowerbiLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.microsoft.com/en-us/power-platform/products/power-bi/" />
|
<CheckBox Name="WPFInstallpowerbi" Content="Power BI" ToolTip="Create stunning reports and visualizations with Power BI Desktop. It puts visual analytics at your fingertips with intuitive report authoring. Drag-and-drop to place content exactly where you want it on the flexible and fluid canvas. Quickly discover patterns as you explore a single unified view of linked, interactive visualizations." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpowerbiLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.microsoft.com/en-us/power-platform/products/power-bi/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@ -11457,17 +11568,17 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallsharex" Content="ShareX (Screenshots)" ToolTip="ShareX is a free and open-source screen capture and file sharing tool. It supports various capture methods and offers advanced features for editing and sharing screenshots." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsharexLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://getsharex.com/" />
|
<CheckBox Name="WPFInstallsharex" Content="ShareX (Screenshots)" ToolTip="ShareX is a free and open-source screen capture and file sharing tool. It supports various capture methods and offers advanced features for editing and sharing screenshots." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsharexLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://getsharex.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
<Border Grid.Row="1" Grid.Column="3">
|
||||||
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallstrawberry" Content="Strawberry (Music Player)" ToolTip="Strawberry is an open-source music player that focuses on music collection management and audio quality. It supports various audio formats and features a clean user interface." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstrawberryLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.strawberrymusicplayer.org/" />
|
<CheckBox Name="WPFInstallstrawberry" Content="Strawberry (Music Player)" ToolTip="Strawberry is an open-source music player that focuses on music collection management and audio quality. It supports various audio formats and features a clean user interface." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstrawberryLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.strawberrymusicplayer.org/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallstremio" Content="Stremio" ToolTip="Stremio is a media center application that allows users to organize and stream their favorite movies, TV shows, and video content." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstremioLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.stremio.com/" />
|
<CheckBox Name="WPFInstallstremio" Content="Stremio" ToolTip="Stremio is a media center application that allows users to organize and stream their favorite movies, TV shows, and video content." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstremioLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.stremio.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
<Border Grid.Row="1" Grid.Column="3">
|
|
||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstalltidal" Content="Tidal" ToolTip="Tidal is a music streaming service known for its high-fidelity audio quality and exclusive content. It offers a vast library of songs and curated playlists." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltidalLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://tidal.com/" />
|
<CheckBox Name="WPFInstalltidal" Content="Tidal" ToolTip="Tidal is a music streaming service known for its high-fidelity audio quality and exclusive content. It offers a vast library of songs and curated playlists." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltidalLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://tidal.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@ -11635,17 +11746,17 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallhwinfo" Content="HWiNFO" ToolTip="HWiNFO provides comprehensive hardware information and diagnostics for Windows." Margin="0,0,2,0"/><TextBlock Name="WPFInstallhwinfoLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.hwinfo.com/" />
|
<CheckBox Name="WPFInstallhwinfo" Content="HWiNFO" ToolTip="HWiNFO provides comprehensive hardware information and diagnostics for Windows." Margin="0,0,2,0"/><TextBlock Name="WPFInstallhwinfoLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.hwinfo.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
<Border Grid.Row="1" Grid.Column="4">
|
||||||
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallintelpresentmon" Content="Intel-PresentMon" ToolTip="A new gaming performance overlay and telemetry application to monitor and measure your gaming experience." Margin="0,0,2,0"/><TextBlock Name="WPFInstallintelpresentmonLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://game.intel.com/us/stories/intel-presentmon/" />
|
<CheckBox Name="WPFInstallintelpresentmon" Content="Intel-PresentMon" ToolTip="A new gaming performance overlay and telemetry application to monitor and measure your gaming experience." Margin="0,0,2,0"/><TextBlock Name="WPFInstallintelpresentmonLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://game.intel.com/us/stories/intel-presentmon/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstalljdownloader" Content="JDownloader" ToolTip="JDownloader is a feature-rich download manager with support for various file hosting services." Margin="0,0,2,0"/><TextBlock Name="WPFInstalljdownloaderLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="http://jdownloader.org/" />
|
<CheckBox Name="WPFInstalljdownloader" Content="JDownloader" ToolTip="JDownloader is a feature-rich download manager with support for various file hosting services." Margin="0,0,2,0"/><TextBlock Name="WPFInstalljdownloaderLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="http://jdownloader.org/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
<Border Grid.Row="1" Grid.Column="4">
|
|
||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallkdeconnect" Content="KDE Connect" ToolTip="KDE Connect allows seamless integration between your KDE desktop and mobile devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallkdeconnectLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://community.kde.org/KDEConnect" />
|
<CheckBox Name="WPFInstallkdeconnect" Content="KDE Connect" ToolTip="KDE Connect allows seamless integration between your KDE desktop and mobile devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallkdeconnectLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://community.kde.org/KDEConnect" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@ -11843,6 +11954,7 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<Label Content="Essential Tweaks" FontSize="16"/>
|
<Label Content="Essential Tweaks" FontSize="16"/>
|
||||||
<CheckBox Name="WPFTweaksRestorePoint" Content="Create Restore Point" IsChecked="True" Margin="5,0" ToolTip="Creates a restore point at runtime in case a revert is needed from WinUtil modifications"/>
|
<CheckBox Name="WPFTweaksRestorePoint" Content="Create Restore Point" IsChecked="True" Margin="5,0" ToolTip="Creates a restore point at runtime in case a revert is needed from WinUtil modifications"/>
|
||||||
|
<CheckBox Name="WPFTweaksEndTaskOnTaskbar" Content="Enable End Task With Right Click" Margin="5,0" ToolTip="Enables option to end task when right clicking a program in the taskbar"/>
|
||||||
<CheckBox Name="WPFTweaksOO" Content="Run OO Shutup" Margin="5,0" ToolTip="Runs OO Shutup from https://www.oo-software.com/en/shutup10"/>
|
<CheckBox Name="WPFTweaksOO" Content="Run OO Shutup" Margin="5,0" ToolTip="Runs OO Shutup from https://www.oo-software.com/en/shutup10"/>
|
||||||
<CheckBox Name="WPFTweaksTele" Content="Disable Telemetry" Margin="5,0" ToolTip="Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser."/>
|
<CheckBox Name="WPFTweaksTele" Content="Disable Telemetry" Margin="5,0" ToolTip="Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser."/>
|
||||||
<CheckBox Name="WPFTweaksWifi" Content="Disable Wifi-Sense" Margin="5,0" ToolTip="Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location."/>
|
<CheckBox Name="WPFTweaksWifi" Content="Disable Wifi-Sense" Margin="5,0" ToolTip="Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location."/>
|
||||||
@ -11919,6 +12031,10 @@ $inputXML = '<Window x:Class="WinUtility.MainWindow"
|
|||||||
<Label Content="Sticky Keys" Style="{StaticResource labelfortweaks}" ToolTip="If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury." />
|
<Label Content="Sticky Keys" Style="{StaticResource labelfortweaks}" ToolTip="If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury." />
|
||||||
<CheckBox Name="WPFToggleStickyKeys" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
<CheckBox Name="WPFToggleStickyKeys" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||||
|
<Label Content="Taskbar Widgets" Style="{StaticResource labelfortweaks}" ToolTip="If Enabled then Widgets Icon in Taskbar will be shown." />
|
||||||
|
<CheckBox Name="WPFToggleTaskbarWidgets" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||||
|
</StackPanel>
|
||||||
<Label Content="Performance Plans" FontSize="16"/>
|
<Label Content="Performance Plans" FontSize="16"/>
|
||||||
<Button Name="WPFAddUltPerf" Content="Add and Activate Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
<Button Name="WPFAddUltPerf" Content="Add and Activate Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
||||||
<Button Name="WPFRemoveUltPerf" Content="Remove Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
<Button Name="WPFRemoveUltPerf" Content="Remove Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
||||||
@ -12585,7 +12701,7 @@ $sync["CheckboxFilter"].Add_TextChanged({
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
$textToSearch = $sync.CheckboxFilter.Text
|
$textToSearch = $sync.CheckboxFilter.Text.ToLower()
|
||||||
$checkBoxName = $CheckBox.Key
|
$checkBoxName = $CheckBox.Key
|
||||||
$textBlockName = $checkBoxName + "Link"
|
$textBlockName = $checkBoxName + "Link"
|
||||||
|
|
||||||
|
@ -217,6 +217,9 @@
|
|||||||
<CheckBox Name="WPFInstallsublimetext" Content="Sublime Text" ToolTip="Sublime Text is a sophisticated text editor for code, markup, and prose." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsublimetextLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.sublimetext.com/" />
|
<CheckBox Name="WPFInstallsublimetext" Content="Sublime Text" ToolTip="Sublime Text is a sophisticated text editor for code, markup, and prose." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsublimetextLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.sublimetext.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<CheckBox Name="WPFInstallswift" Content="Swift toolchain" ToolTip="Swift is a general-purpose programming language that???s approachable for newcomers and powerful for experts." Margin="0,0,2,0"/><TextBlock Name="WPFInstallswiftLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.swift.org/" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstalltemurin" Content="Eclipse Temurin" ToolTip="Eclipse Temurin is the open source Java SE build based upon OpenJDK." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltemurinLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://adoptium.net/temurin/" />
|
<CheckBox Name="WPFInstalltemurin" Content="Eclipse Temurin" ToolTip="Eclipse Temurin is the open source Java SE build based upon OpenJDK." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltemurinLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://adoptium.net/temurin/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@ -356,15 +359,15 @@
|
|||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallprismlauncher" Content="Prism Launcher" ToolTip="Prism Launcher is a game launcher and manager designed to provide a clean and intuitive interface for organizing and launching your games." Margin="0,0,2,0"/><TextBlock Name="WPFInstallprismlauncherLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://prismlauncher.org/" />
|
<CheckBox Name="WPFInstallprismlauncher" Content="Prism Launcher" ToolTip="Prism Launcher is a game launcher and manager designed to provide a clean and intuitive interface for organizing and launching your games." Margin="0,0,2,0"/><TextBlock Name="WPFInstallprismlauncherLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://prismlauncher.org/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<CheckBox Name="WPFInstallpsremoteplay" Content="PS Remote Play" ToolTip="PS Remote Play is a free application that allows you to stream games from your PlayStation console to a PC or mobile device." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpsremoteplayLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://remoteplay.dl.playstation.net/remoteplay/lang/gb/" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
<Border Grid.Row="1" Grid.Column="2">
|
<Border Grid.Row="1" Grid.Column="2">
|
||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<CheckBox Name="WPFInstallpsremoteplay" Content="PS Remote Play" ToolTip="PS Remote Play is a free application that allows you to stream games from your PlayStation console to a PC or mobile device." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpsremoteplayLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://remoteplay.dl.playstation.net/remoteplay/lang/gb/" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallsidequest" Content="SideQuestVR" ToolTip="SideQuestVR is a community-driven platform that enables users to discover, install, and manage virtual reality content on Oculus Quest devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsidequestLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://sidequestvr.com/" />
|
<CheckBox Name="WPFInstallsidequest" Content="SideQuestVR" ToolTip="SideQuestVR is a community-driven platform that enables users to discover, install, and manage virtual reality content on Oculus Quest devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsidequestLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://sidequestvr.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@ -408,6 +411,9 @@
|
|||||||
<CheckBox Name="WPFInstallonedrive" Content="OneDrive" ToolTip="OneDrive is a cloud storage service provided by Microsoft, allowing users to store and share files securely across devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallonedriveLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://onedrive.live.com/" />
|
<CheckBox Name="WPFInstallonedrive" Content="OneDrive" ToolTip="OneDrive is a cloud storage service provided by Microsoft, allowing users to store and share files securely across devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallonedriveLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://onedrive.live.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<CheckBox Name="WPFInstallpowerautomate" Content="Power Automate" ToolTip="Using Power Automate Desktop you can automate tasks on the desktop as well as the Web." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpowerautomateLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.microsoft.com/en-us/power-platform/products/power-automate" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallpowerbi" Content="Power BI" ToolTip="Create stunning reports and visualizations with Power BI Desktop. It puts visual analytics at your fingertips with intuitive report authoring. Drag-and-drop to place content exactly where you want it on the flexible and fluid canvas. Quickly discover patterns as you explore a single unified view of linked, interactive visualizations." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpowerbiLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.microsoft.com/en-us/power-platform/products/power-bi/" />
|
<CheckBox Name="WPFInstallpowerbi" Content="Power BI" ToolTip="Create stunning reports and visualizations with Power BI Desktop. It puts visual analytics at your fingertips with intuitive report authoring. Drag-and-drop to place content exactly where you want it on the flexible and fluid canvas. Quickly discover patterns as you explore a single unified view of linked, interactive visualizations." Margin="0,0,2,0"/><TextBlock Name="WPFInstallpowerbiLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.microsoft.com/en-us/power-platform/products/power-bi/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@ -537,17 +543,17 @@
|
|||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallsharex" Content="ShareX (Screenshots)" ToolTip="ShareX is a free and open-source screen capture and file sharing tool. It supports various capture methods and offers advanced features for editing and sharing screenshots." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsharexLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://getsharex.com/" />
|
<CheckBox Name="WPFInstallsharex" Content="ShareX (Screenshots)" ToolTip="ShareX is a free and open-source screen capture and file sharing tool. It supports various capture methods and offers advanced features for editing and sharing screenshots." Margin="0,0,2,0"/><TextBlock Name="WPFInstallsharexLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://getsharex.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
<Border Grid.Row="1" Grid.Column="3">
|
||||||
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallstrawberry" Content="Strawberry (Music Player)" ToolTip="Strawberry is an open-source music player that focuses on music collection management and audio quality. It supports various audio formats and features a clean user interface." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstrawberryLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.strawberrymusicplayer.org/" />
|
<CheckBox Name="WPFInstallstrawberry" Content="Strawberry (Music Player)" ToolTip="Strawberry is an open-source music player that focuses on music collection management and audio quality. It supports various audio formats and features a clean user interface." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstrawberryLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.strawberrymusicplayer.org/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallstremio" Content="Stremio" ToolTip="Stremio is a media center application that allows users to organize and stream their favorite movies, TV shows, and video content." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstremioLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.stremio.com/" />
|
<CheckBox Name="WPFInstallstremio" Content="Stremio" ToolTip="Stremio is a media center application that allows users to organize and stream their favorite movies, TV shows, and video content." Margin="0,0,2,0"/><TextBlock Name="WPFInstallstremioLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.stremio.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
<Border Grid.Row="1" Grid.Column="3">
|
|
||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstalltidal" Content="Tidal" ToolTip="Tidal is a music streaming service known for its high-fidelity audio quality and exclusive content. It offers a vast library of songs and curated playlists." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltidalLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://tidal.com/" />
|
<CheckBox Name="WPFInstalltidal" Content="Tidal" ToolTip="Tidal is a music streaming service known for its high-fidelity audio quality and exclusive content. It offers a vast library of songs and curated playlists." Margin="0,0,2,0"/><TextBlock Name="WPFInstalltidalLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://tidal.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@ -715,17 +721,17 @@
|
|||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallhwinfo" Content="HWiNFO" ToolTip="HWiNFO provides comprehensive hardware information and diagnostics for Windows." Margin="0,0,2,0"/><TextBlock Name="WPFInstallhwinfoLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.hwinfo.com/" />
|
<CheckBox Name="WPFInstallhwinfo" Content="HWiNFO" ToolTip="HWiNFO provides comprehensive hardware information and diagnostics for Windows." Margin="0,0,2,0"/><TextBlock Name="WPFInstallhwinfoLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://www.hwinfo.com/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
<Border Grid.Row="1" Grid.Column="4">
|
||||||
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallintelpresentmon" Content="Intel-PresentMon" ToolTip="A new gaming performance overlay and telemetry application to monitor and measure your gaming experience." Margin="0,0,2,0"/><TextBlock Name="WPFInstallintelpresentmonLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://game.intel.com/us/stories/intel-presentmon/" />
|
<CheckBox Name="WPFInstallintelpresentmon" Content="Intel-PresentMon" ToolTip="A new gaming performance overlay and telemetry application to monitor and measure your gaming experience." Margin="0,0,2,0"/><TextBlock Name="WPFInstallintelpresentmonLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://game.intel.com/us/stories/intel-presentmon/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstalljdownloader" Content="JDownloader" ToolTip="JDownloader is a feature-rich download manager with support for various file hosting services." Margin="0,0,2,0"/><TextBlock Name="WPFInstalljdownloaderLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="http://jdownloader.org/" />
|
<CheckBox Name="WPFInstalljdownloader" Content="JDownloader" ToolTip="JDownloader is a feature-rich download manager with support for various file hosting services." Margin="0,0,2,0"/><TextBlock Name="WPFInstalljdownloaderLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="http://jdownloader.org/" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
<Border Grid.Row="1" Grid.Column="4">
|
|
||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<CheckBox Name="WPFInstallkdeconnect" Content="KDE Connect" ToolTip="KDE Connect allows seamless integration between your KDE desktop and mobile devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallkdeconnectLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://community.kde.org/KDEConnect" />
|
<CheckBox Name="WPFInstallkdeconnect" Content="KDE Connect" ToolTip="KDE Connect allows seamless integration between your KDE desktop and mobile devices." Margin="0,0,2,0"/><TextBlock Name="WPFInstallkdeconnectLink" Style="{StaticResource HoverTextBlockStyle}" Text="(?)" ToolTip="https://community.kde.org/KDEConnect" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
<StackPanel Background="{MainBackgroundColor}" SnapsToDevicePixels="True">
|
||||||
<Label Content="Essential Tweaks" FontSize="16"/>
|
<Label Content="Essential Tweaks" FontSize="16"/>
|
||||||
<CheckBox Name="WPFTweaksRestorePoint" Content="Create Restore Point" IsChecked="True" Margin="5,0" ToolTip="Creates a restore point at runtime in case a revert is needed from WinUtil modifications"/>
|
<CheckBox Name="WPFTweaksRestorePoint" Content="Create Restore Point" IsChecked="True" Margin="5,0" ToolTip="Creates a restore point at runtime in case a revert is needed from WinUtil modifications"/>
|
||||||
|
<CheckBox Name="WPFTweaksEndTaskOnTaskbar" Content="Enable End Task With Right Click" Margin="5,0" ToolTip="Enables option to end task when right clicking a program in the taskbar"/>
|
||||||
<CheckBox Name="WPFTweaksOO" Content="Run OO Shutup" Margin="5,0" ToolTip="Runs OO Shutup from https://www.oo-software.com/en/shutup10"/>
|
<CheckBox Name="WPFTweaksOO" Content="Run OO Shutup" Margin="5,0" ToolTip="Runs OO Shutup from https://www.oo-software.com/en/shutup10"/>
|
||||||
<CheckBox Name="WPFTweaksTele" Content="Disable Telemetry" Margin="5,0" ToolTip="Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser."/>
|
<CheckBox Name="WPFTweaksTele" Content="Disable Telemetry" Margin="5,0" ToolTip="Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser."/>
|
||||||
<CheckBox Name="WPFTweaksWifi" Content="Disable Wifi-Sense" Margin="5,0" ToolTip="Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location."/>
|
<CheckBox Name="WPFTweaksWifi" Content="Disable Wifi-Sense" Margin="5,0" ToolTip="Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location."/>
|
||||||
@ -82,6 +83,10 @@
|
|||||||
<Label Content="Sticky Keys" Style="{StaticResource labelfortweaks}" ToolTip="If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury." />
|
<Label Content="Sticky Keys" Style="{StaticResource labelfortweaks}" ToolTip="If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury." />
|
||||||
<CheckBox Name="WPFToggleStickyKeys" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
<CheckBox Name="WPFToggleStickyKeys" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||||
|
<Label Content="Taskbar Widgets" Style="{StaticResource labelfortweaks}" ToolTip="If Enabled then Widgets Icon in Taskbar will be shown." />
|
||||||
|
<CheckBox Name="WPFToggleTaskbarWidgets" Style="{StaticResource ColorfulToggleSwitchStyle}" Margin="2.5,0"/>
|
||||||
|
</StackPanel>
|
||||||
<Label Content="Performance Plans" FontSize="16"/>
|
<Label Content="Performance Plans" FontSize="16"/>
|
||||||
<Button Name="WPFAddUltPerf" Content="Add and Activate Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
<Button Name="WPFAddUltPerf" Content="Add and Activate Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
||||||
<Button Name="WPFRemoveUltPerf" Content="Remove Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
<Button Name="WPFRemoveUltPerf" Content="Remove Ultimate Performance Profile" HorizontalAlignment = "Left" Width="300" Margin="5" Padding="20,5" />
|
||||||
|
Reference in New Issue
Block a user