mirror of
https://github.com/anejolov/WinDeckHelper.git
synced 2026-06-13 04:05:06 +03:00
012124f2bb
- Video driver - VC++ - Dot.net - RivaTuner - AMD Adrenalin - Steam Deck Tools Added stuff versions to description
1532 lines
115 KiB
PowerShell
1532 lines
115 KiB
PowerShell
Add-Type -AssemblyName PresentationFramework
|
|
|
|
# Hide Console Window
|
|
$dllvar = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
|
|
add-type -name win -member $dllvar -namespace native
|
|
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)
|
|
|
|
if ((Get-WinSystemLocale).Name -eq 'ru-RU')
|
|
{
|
|
$global:Lang = 'RUS'
|
|
}
|
|
else
|
|
{
|
|
$global:Lang = 'ENG'
|
|
}
|
|
|
|
while ($true)
|
|
{
|
|
Get-BitsTransfer | Remove-BitsTransfer
|
|
|
|
if ($global:NeedReset -eq $false) { exit }
|
|
|
|
$global:NeedReset = $false
|
|
$global:Errors = @()
|
|
|
|
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
|
|
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
|
|
|
|
# For talking across runspaces.
|
|
$sync = [Hashtable]::Synchronized(@{ })
|
|
|
|
# Script location path
|
|
$sync.rootPath = split-path -parent $MyInvocation.MyCommand.Definition
|
|
|
|
Function Set-Orientation
|
|
{
|
|
$pinvokeCode = @"
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
namespace Resolution
|
|
{
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
|
|
public struct DEVMODE
|
|
{
|
|
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)]
|
|
public string dmDeviceName;
|
|
public short dmSpecVersion;
|
|
public short dmDriverVersion;
|
|
public short dmSize;
|
|
public short dmDriverExtra;
|
|
public int dmFields;
|
|
public int dmPositionX;
|
|
public int dmPositionY;
|
|
public int dmDisplayOrientation;
|
|
public int dmDisplayFixedOutput;
|
|
public short dmColor;
|
|
public short dmDuplex;
|
|
public short dmYResolution;
|
|
public short dmTTOption;
|
|
public short dmCollate;
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
|
|
public string dmFormName;
|
|
public short dmLogPixels;
|
|
public short dmBitsPerPel;
|
|
public int dmPelsWidth;
|
|
public int dmPelsHeight;
|
|
public int dmDisplayFlags;
|
|
public int dmDisplayFrequency;
|
|
public int dmICMMethod;
|
|
public int dmICMIntent;
|
|
public int dmMediaType;
|
|
public int dmDitherType;
|
|
public int dmReserved1;
|
|
public int dmReserved2;
|
|
public int dmPanningWidth;
|
|
public int dmPanningHeight;
|
|
};
|
|
class NativeMethods
|
|
{
|
|
[DllImport("user32.dll")]
|
|
public static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode);
|
|
[DllImport("user32.dll")]
|
|
public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags);
|
|
public const int ENUM_CURRENT_SETTINGS = -1;
|
|
public const int CDS_UPDATEREGISTRY = 0x01;
|
|
public const int CDS_TEST = 0x02;
|
|
public const int DISP_CHANGE_SUCCESSFUL = 0;
|
|
public const int DISP_CHANGE_RESTART = 1;
|
|
public const int DISP_CHANGE_FAILED = -1;
|
|
public const int DMDO_DEFAULT = 0;
|
|
public const int DMDO_90 = 1;
|
|
public const int DMDO_180 = 2;
|
|
public const int DMDO_270 = 3;
|
|
}
|
|
public class PrmaryScreenResolution
|
|
{
|
|
static public string ChangeResolution()
|
|
{
|
|
DEVMODE dm = GetDevMode();
|
|
if (0 != NativeMethods.EnumDisplaySettings(null, NativeMethods.ENUM_CURRENT_SETTINGS, ref dm))
|
|
{
|
|
// swap width and height
|
|
int temp = dm.dmPelsHeight;
|
|
dm.dmPelsHeight = dm.dmPelsWidth;
|
|
dm.dmPelsWidth = temp;
|
|
// determine new orientation based on the current orientation
|
|
|
|
dm.dmDisplayOrientation = NativeMethods.DMDO_270;
|
|
|
|
int iRet = NativeMethods.ChangeDisplaySettings(ref dm, NativeMethods.CDS_TEST);
|
|
if (iRet == NativeMethods.DISP_CHANGE_FAILED)
|
|
{
|
|
return "Unable To Process Your Request. Sorry For This Inconvenience.";
|
|
}
|
|
else
|
|
{
|
|
iRet = NativeMethods.ChangeDisplaySettings(ref dm, NativeMethods.CDS_UPDATEREGISTRY);
|
|
switch (iRet)
|
|
{
|
|
case NativeMethods.DISP_CHANGE_SUCCESSFUL:
|
|
{
|
|
return "Success";
|
|
}
|
|
case NativeMethods.DISP_CHANGE_RESTART:
|
|
{
|
|
return "You Need To Reboot For The Change To Happen.\n If You Feel Any Problem After Rebooting Your Machine\nThen Try To Change Resolution In Safe Mode.";
|
|
}
|
|
default:
|
|
{
|
|
return "Failed To Change The Resolution";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return "Failed To Change The Resolution.";
|
|
}
|
|
}
|
|
private static DEVMODE GetDevMode()
|
|
{
|
|
DEVMODE dm = new DEVMODE();
|
|
dm.dmDeviceName = new String(new char[32]);
|
|
dm.dmFormName = new String(new char[32]);
|
|
dm.dmSize = (short)Marshal.SizeOf(dm);
|
|
return dm;
|
|
}
|
|
}
|
|
}
|
|
"@
|
|
Add-Type $pinvokeCode -ErrorAction SilentlyContinue
|
|
[Resolution.PrmaryScreenResolution]::ChangeResolution()
|
|
}
|
|
|
|
# long running task.
|
|
$counter = {
|
|
|
|
$sync.Tabs.Enabled = $false
|
|
$sync.BrowseButton.Enabled = $false
|
|
$sync.OSKeyboardButton.Enabled = $false
|
|
$sync.OrientationButton.Enabled = $false
|
|
$sync.StartButton.Enabled = $false
|
|
$sync.LangComboBox.Enabled = $false
|
|
|
|
$count = [PowerShell]::Create().AddScript({
|
|
|
|
#Scroll textbox text to bottom
|
|
$sync.TextBox.Add_TextChanged({
|
|
$sync.TextBox.SelectionStart = $sync.TextBox.TextLength
|
|
$sync.TextBox.ScrollToCaret()
|
|
})
|
|
|
|
function Is-Download-Selected
|
|
{
|
|
foreach ($Node in ($sync.MustTree_Node_VideoDriver, $sync.MustTree_Node_AudioDriver, $sync.MustTree_Node_NetworkDriver,
|
|
$sync.MustTree_Node_BluetoothDriver, $sync.MustTree_Node_CardReaderDriver, $sync.MustTree_Node_Vc,
|
|
$sync.MustTree_Node_DirectX, $sync.MustTree_Node_DotNet, $sync.MustTree_Node_Rtss, $sync.MustTree_Node_Adrenalin,
|
|
$sync.MustTree_Node_Cru, $sync.MustTree_Node_DeckTools, $sync.TweaksTree_Node_Osk, $sync.TweaksTree_Node_Equalizer,
|
|
$sync.SoftTree_Node_Steam, $sync.SoftTree_Node_Chrome, $sync.SoftTree_Node_7zip, $sync.SoftTree_Node_ShareX))
|
|
{
|
|
|
|
if ($Node.Checked -eq $true) { return $true }
|
|
}
|
|
return $false
|
|
}
|
|
|
|
function Is-Configure-Selected
|
|
{
|
|
if ($sync.MustTree_Node_Rtss.Checked -or $sync.MustTree_Node_DeckTools.Checked) { return $true }
|
|
else { return $false }
|
|
}
|
|
|
|
function Is-Tweak-Selected
|
|
{
|
|
|
|
foreach ($Node in ($sync.MustTree_Node_Hibernation, $sync.MustTree_Node_Utc, $sync.TweaksTree_Node_GameBar, $sync.TweaksTree_Node_LoginSleep, $sync.TweaksTree_Node_ShowKeyboard))
|
|
{
|
|
if ($Node.Checked -eq $true) { return $true }
|
|
}
|
|
return $false
|
|
}
|
|
|
|
Function Set-Scale
|
|
{
|
|
$source = @"
|
|
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
|
|
public static extern bool SystemParametersInfo(
|
|
uint uiAction,
|
|
uint uiParam,
|
|
uint pvParam,
|
|
uint fWinIni);
|
|
"@
|
|
$apicall = Add-Type -MemberDefinition $source -Name WinAPICall -Namespace SystemParamInfo -PassThru
|
|
$apicall::SystemParametersInfo(0x009F, 4294967295, $null, 1) | Out-Null
|
|
}
|
|
|
|
function Report-Error
|
|
{
|
|
param ([String]$Error,
|
|
[String]$Name)
|
|
|
|
Out-File -FilePath ($sync.rootPath + "\windeckhelper_errors.log") -Append -InputObject ((Get-Date -Format "MM/dd/yyyy HH:mm - ") + $Name + " - " + $Error)
|
|
|
|
$sync.Textbox.AppendText($sync.ErrorString)
|
|
|
|
if ($global:Errors -notlike "*$Name*")
|
|
{
|
|
$global:Errors += $Name + "`n"
|
|
}
|
|
}
|
|
|
|
function Start-Process-With-Timeout
|
|
{
|
|
param (
|
|
[string]$FilePath,
|
|
[string]$Arguments
|
|
)
|
|
$proc = Start-Process -FilePath $FilePath -ArgumentList $Arguments -PassThru
|
|
$proc | Wait-Process -Timeout 300 -ErrorAction SilentlyContinue -ErrorVariable timeouted
|
|
|
|
if ($timeouted)
|
|
{
|
|
# terminate the process
|
|
$proc | kill
|
|
throw "Timeout error!"
|
|
}
|
|
}
|
|
|
|
$DownloadPath = $sync.DownloadPath
|
|
|
|
function Download-File
|
|
{
|
|
param (
|
|
[string]$Name,
|
|
[String]$Url,
|
|
[String]$Output
|
|
)
|
|
|
|
$TextboxText = $sync.TextBox.Text
|
|
|
|
$DownloadText = $TextboxText + "`r`n - " + $sync.DownloadingString + " $Name" + ": "
|
|
|
|
$TransferJob = Start-BitsTransfer -Asynchronous $Url "$DownloadPath\$Output"
|
|
|
|
$Stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
|
|
|
|
while (($Stopwatch.elapsed -lt (New-TimeSpan -Seconds 30)) -and ($TransferJob.JobState -ne "Transferring") -and ($TransferJob.JobState -ne "Transferred"))
|
|
{
|
|
$sync.Textbox.Text = ($DownloadText)
|
|
}
|
|
|
|
if ($TransferJob.JobState -eq "Transferring")
|
|
{
|
|
if ($TransferJob.BytesTotal/1MB -gt 1)
|
|
{
|
|
$unit = 1MB
|
|
}
|
|
else
|
|
{
|
|
$unit = 1KB
|
|
}
|
|
while ($TransferJob.JobState -eq "Transferring")
|
|
{
|
|
$progressInt = ((($TransferJob.BytesTransferred/$unit) / ($TransferJob.BytesTotal/$unit)) * 100)
|
|
|
|
[string]$progressBar = "|" + "|" * ($progressInt / 3)
|
|
$sync.Textbox.Text = ("$DownloadText $progressBar " + ($progressInt.Tostring("0")) + "%")
|
|
}
|
|
}
|
|
|
|
Switch ($TransferJob.JobState)
|
|
{
|
|
"Transferred" {
|
|
Complete-BitsTransfer -BitsJob $TransferJob
|
|
$sync.Textbox.Text = ($DownloadText + $sync.DoneString)
|
|
}
|
|
Default {
|
|
$sync.Textbox.Text = ($DownloadText)
|
|
Report-Error -Error 'Download Error!' -Name $Name
|
|
}
|
|
}
|
|
}
|
|
|
|
if ((Is-Download-Selected) -or (Is-Tweak-Selected)) { $sync.Textbox.Text = '' }
|
|
|
|
#Install Drivers certificate
|
|
if ($sync.MustTree_Node_VideoDriver.Checked -or $sync.MustTree_Node_AudioDriver.Checked -or $sync.MustTree_Node_BluetoothDriver.Checked -or $sync.MustTree_Node_NetworkDriver.Checked -or $sync.MustTree_Node_CardReaderDriver.Checked)
|
|
{
|
|
certutil -enterprise -f -v -AddStore "TrustedPublisher" ($sync.rootPath + "\drivers.cer")
|
|
}
|
|
|
|
if (Is-Download-Selected)
|
|
{
|
|
# MustHave Download
|
|
$sync.Textbox.AppendText("`r`n" + $sync.DownloadingTitleString + "`r`n")
|
|
|
|
if ($sync.MustTree_Node_VideoDriver.Checked)
|
|
{
|
|
Download-File -Name $sync.VideoDriverString -Url "https://steamdeck-packages.steamos.cloud/misc/windows/drivers/Aerith%20Windows%20Driver_2302270303.zip" -Output "APU_Drivers.zip"
|
|
}
|
|
if ($sync.MustTree_Node_AudioDriver.Checked)
|
|
{
|
|
Download-File -Name ($sync.AudioDriverString + " 1/2 (cs35l41)") -Url "https://steamdeck-packages.steamos.cloud/misc/windows/drivers/cs35l41-V1.2.1.0.zip" -Output "Audio_Drivers_1.zip"
|
|
Download-File -Name ($sync.AudioDriverString + " 2/2 (NAU88L21)") -Url "https://steamdeck-packages.steamos.cloud/misc/windows/drivers/NAU88L21_x64_1.0.6.0_WHQL%20-%20DUA_BIQ_WHQL.zip" -Output "Audio_Drivers_2.zip"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_NetworkDriver.Checked)
|
|
{
|
|
Download-File -Name $sync.NetworkDriverString -Url "https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2022/11/05b73312-01e0-4e40-a991-93d11309b736_8cd43d4695c27a3f174b6e9c33034c100995e095.cab" -Output "WLAN_Drivers.cab"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_BluetoothDriver.Checked)
|
|
{
|
|
Download-File -Name $sync.BluetoothDriverString -Url "https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2022/08/ad501382-9e48-4720-92c7-bcee5374671e_501f5f234304610bbbc221823de181e544c1bc09.cab" -Output "Bluetooth_Drivers.cab"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_CardReaderDriver.Checked)
|
|
{
|
|
Download-File -Name $sync.CardReaderDriverString -Url "https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2022/10/4f20ec00-bee5-4df2-873c-3a49cf4d4f8b_0aaf931a756473e6f8be1ef890fb60c283e9e82e.cab" -Output "MicroSD_Drivers.cab"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Vc.Checked)
|
|
{
|
|
Download-File -Name $sync.VcString -Url "https://github.com/abbodi1406/vcredist/releases/download/v0.70.0/VisualCppRedist_AIO_x86_x64_70.zip" -Output "VCpp.zip"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_DirectX.Checked)
|
|
{
|
|
Download-File -Name $sync.DirectXString -Url "https://download.microsoft.com/download/1/7/1/1718CCC4-6315-4D8E-9543-8E28A4E18C4C/dxwebsetup.exe" -Output "DirectX.exe"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_DotNet.Checked)
|
|
{
|
|
Download-File -Name $sync.DotNetString -Url "https://download.visualstudio.microsoft.com/download/pr/38dca5f5-f10f-49fb-b07f-a42dd123ea30/335bb4811c9636b3a4687757f9234db9/dotnet-sdk-6.0.407-win-x64.exe" -Output "dotnet6.0_Setup.exe"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Rtss.Checked)
|
|
{
|
|
Download-File -Name $sync.RtssString -Url "https://ftp.nluug.nl/pub/games/PC/guru3d/afterburner/[Guru3D.com]-RTSS.zip" -Output "RivaTuner.zip"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Adrenalin.Checked)
|
|
{
|
|
Download-File -Name $sync.AdrenalinString -Url "https://dl.dropboxusercontent.com/s/kex95hyhnkjdqsp/ccc2_install.exe?dl=0" -Output "ccc2_install.exe"
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Cru.Checked)
|
|
{
|
|
Download-File -Name $sync.CruString -Url "https://www.monitortests.com/download/cru/cru-1.5.2.zip" -Output "cru-1.5.2.zip"
|
|
Download-File -Name $sync.CruConfigString -Url "https://dl.dropboxusercontent.com/s/w8mmt7uvzmcaemx/cru-steamdeck.bin?dl=0" -Output "cru-steamdeck.bin"
|
|
}
|
|
if ($sync.MustTree_Node_DeckTools.Checked)
|
|
{
|
|
Download-File -Name $sync.VigemBusString -Url "https://github.com/ViGEm/ViGEmBus/releases/download/v1.21.442.0/ViGEmBus_1.21.442_x64_x86_arm64.exe" -Output "ViGEmBus_Setup.exe"
|
|
Download-File -Name $sync.DeckToolsString -Url "https://github.com/ayufan/steam-deck-tools/releases/download/0.6.17/SteamDeckTools-0.6.17-portable.zip" -Output "SteamDeckTools.zip"
|
|
}
|
|
|
|
#Tweaks Download
|
|
|
|
if ($sync.TweaksTree_Node_Osk.Checked)
|
|
{
|
|
Download-File -Name $sync.OskString -Url "https://dl.dropboxusercontent.com/s/hapygmbsfuko4ms/ReplaceOSK.bat?dl=0" -Output "ReplaceOSK.bat"
|
|
|
|
}
|
|
|
|
if ($sync.TweaksTree_Node_Equalizer.Checked)
|
|
{
|
|
Download-File -Name $sync.EqualizerString -Url "https://netix.dl.sourceforge.net/project/equalizerapo/1.3/EqualizerAPO64-1.3.exe" -Output "EqualizerAPO_Setup.exe"
|
|
|
|
}
|
|
|
|
#Soft Download
|
|
|
|
if ($sync.SoftTree_Node_Steam.Checked)
|
|
{
|
|
Download-File -Name $sync.SteamString -Url "https://cdn.akamai.steamstatic.com/client/installer/SteamSetup.exe" -Output "SteamSetup.exe"
|
|
|
|
}
|
|
|
|
if ($sync.SoftTree_Node_Chrome.Checked)
|
|
{
|
|
Download-File -Name $sync.ChromeString -Url "https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7B04F50E1E-55EF-FA8E-646E-26A38F938B79%7D%26lang%3Den%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26ap%3Dx64-stable-statsdef_1%26installdataindex%3Dempty/chrome/install/ChromeStandaloneSetup64.exe" -Output "ChromeStandaloneSetup64.exe"
|
|
|
|
}
|
|
|
|
if ($sync.SoftTree_Node_7zip.Checked)
|
|
{
|
|
Download-File -Name $sync.SevenZipString -Url "https://7-zip.org/a/7z2201-x64.exe" -Output "7z2201-x64.exe"
|
|
|
|
}
|
|
|
|
if ($sync.SoftTree_Node_ShareX.Checked)
|
|
{
|
|
Download-File -Name $sync.ShareXString -Url "https://github.com/ShareX/ShareX/releases/download/v15.0.0/ShareX-15.0.0-setup.exe" -Output "ShareX-15.0.0-setup.exe"
|
|
|
|
}
|
|
|
|
#Must-Have Install
|
|
|
|
$sync.Textbox.AppendText("`r`n`r`n" + $sync.InstallingTitleString + "`r`n")
|
|
|
|
if ($sync.MustTree_Node_VideoDriver.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.VideoDriverString + " : "
|
|
Expand-Archive "$DownloadPath\APU_Drivers.zip" -DestinationPath "$DownloadPath\APU_Drivers" -Force
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\APU_Drivers\GFX Driver_41.1.1.30310_230227a-388790E-2302270303\Setup.exe" -Arguments "-install"
|
|
Set-Scale | Out-Null
|
|
Set-Orientation | Out-Null
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.VideoDriverString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_AudioDriver.Checked)
|
|
{
|
|
try
|
|
{
|
|
$Name = ($sync.AudioDriverString + " 2/1 (cs35l41)")
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $Name + " : "
|
|
Expand-Archive "$DownloadPath\Audio_Drivers_1.zip" "$DownloadPath\Audio_Drivers_1" -Force
|
|
Start-Process-With-Timeout -FilePath "PNPUtil.exe" -Arguments "/add-driver `"$DownloadPath\Audio_Drivers_1\cs35l41-V1.2.1.0\cs35l41.inf`" /install"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $Name
|
|
}
|
|
|
|
try
|
|
{
|
|
$Name = ($sync.AudioDriverString + " 2/2 (NAU88L21)")
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $Name + " : "
|
|
Expand-Archive "$DownloadPath\Audio_Drivers_2.zip" "$DownloadPath\Audio_Drivers_2" -Force
|
|
Start-Process-With-Timeout -FilePath "PNPUtil.exe" -Arguments "/add-driver `"$DownloadPath\Audio_Drivers_2\NAU88L21_x64_1.0.6.0_WHQL - DUA_BIQ_WHQL\NAU88L21.inf`" /install"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $Name
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_NetworkDriver.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.NetworkDriverString + " : "
|
|
New-Item $DownloadPath\WLAN_Drivers -ItemType Directory -ErrorAction SilentlyContinue >> $null
|
|
Start-Process-With-Timeout -FilePath "expand.exe" -Arguments "-F:* $DownloadPath\WLAN_Drivers.cab $DownloadPath\\WLAN_Drivers"
|
|
Start-Process-With-Timeout -FilePath "PNPUtil.exe" -Arguments "/add-driver `"$DownloadPath\WLAN_Drivers\netrtwlane.inf`" /install"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.NetworkDriverString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_BluetoothDriver.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.BluetoothDriverString + " : "
|
|
New-Item $DownloadPath\Bluetooth_Drivers -ItemType Directory -ErrorAction SilentlyContinue >> $null
|
|
Start-Process-With-Timeout -FilePath "expand.exe" -Arguments "-F:* $DownloadPath\Bluetooth_Drivers.cab $DownloadPath\Bluetooth_Drivers"
|
|
Start-Process-With-Timeout -FilePath "PNPUtil.exe" -Arguments "/add-driver `"$DownloadPath\Bluetooth_Drivers\Rtkfilter.inf`" /install"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.BluetoothDriverString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_CardReaderDriver.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.CardReaderDriverString + " : "
|
|
New-Item $DownloadPath\MicroSD_Drivers -ItemType Directory -ErrorAction SilentlyContinue >> $null
|
|
Start-Process-With-Timeout -FilePath "expand.exe" -Arguments "-F:* $DownloadPath\MicroSD_Drivers.cab $DownloadPath\MicroSD_Drivers"
|
|
Start-Process-With-Timeout -FilePath "PNPUtil.exe" -Arguments "/add-driver `"$DownloadPath\MicroSD_Drivers\bhtsddr.inf`" /install"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.CardReaderDriverString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Vc.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.VcString + " : "
|
|
Expand-Archive "$DownloadPath\VCpp.zip" -DestinationPath "$DownloadPath\Vcpp" -Force
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\Vcpp\VisualCppRedist_AIO_x86_x64.exe" -Arguments "/ai"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.VcString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_DirectX.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.DirectXString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\DirectX.exe" -Arguments "/Q"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.DirectXString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_DotNet.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.DotNetString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\dotnet6.0_Setup.exe" -Arguments "/quiet /norestart"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.DotNetString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Rtss.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.RtssString + " : "
|
|
Expand-Archive "$DownloadPath\RivaTuner.zip" -DestinationPath "$DownloadPath\RivaTuner" -Force
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\RivaTuner\[Guru3D.com]-RTSSSetup734.exe" -Arguments "/S"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.RtssString
|
|
}
|
|
}
|
|
|
|
|
|
if ($sync.MustTree_Node_Adrenalin.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.AdrenalinString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\ccc2_install.exe" -Arguments "/S"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.AdrenalinString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Cru.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.CruString + " : "
|
|
$cruPath = "$Env:Programfiles\Custom Resolution Utility"
|
|
New-Item "$Env:Programfiles" -ItemType Directory -Name "Custom Resolution Utility" -ErrorAction SilentlyContinue >> $null
|
|
Expand-Archive "$DownloadPath\cru-1.5.2.zip" $cruPath -Force
|
|
Copy-Item "$DownloadPath\cru-steamdeck.bin" -Destination $cruPath -Force
|
|
Start-Process "$cruPath\CRU.exe"
|
|
Start-Process ($sync.rootPath + "\cruAhk.exe") -Wait
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.CruString
|
|
}
|
|
}
|
|
if ($sync.MustTree_Node_DeckTools.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.VigemBusString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\ViGEmBus_Setup.exe" -Arguments "/qn /norestart"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.VigemBusString
|
|
}
|
|
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.DeckToolsString + " : "
|
|
New-Item "$Env:Programfiles" -ItemType Directory -Name "SteamDeckTools" -ErrorAction SilentlyContinue >> $null
|
|
Expand-Archive "$DownloadPath\SteamDeckTools.zip" "$Env:Programfiles\SteamDeckTools" -Force
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.DeckToolsString
|
|
}
|
|
}
|
|
|
|
if ($sync.TweaksTree_Node_Osk.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.OskString + " : "
|
|
Start-Process -FilePath "$DownloadPath\ReplaceOSK.bat" -Wait
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.OskString
|
|
}
|
|
}
|
|
|
|
if ($sync.TweaksTree_Node_Equalizer.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.EqualizerString + " : "
|
|
Start-Process -FilePath "$DownloadPath\EqualizerAPO_Setup.exe" -ArgumentList "/S"
|
|
Start-Process ($sync.rootPath + "\apoAhk.exe") -Wait
|
|
Copy-Item "$DownloadPath\EqualizerAPO_Config.txt" -Destination "$Env:Programfiles\EqualizerAPO\config\config.txt" -Force
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.EqualizerString
|
|
}
|
|
}
|
|
|
|
#Soft Install
|
|
|
|
if ($sync.SoftTree_Node_Steam.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.SteamString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\SteamSetup.exe" -Arguments "/S"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.SteamString
|
|
}
|
|
}
|
|
|
|
if ($sync.SoftTree_Node_Chrome.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.ChromeString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\ChromeStandaloneSetup64.exe" -Arguments "/silent /install"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.ChromeString
|
|
}
|
|
}
|
|
|
|
if ($sync.SoftTree_Node_7zip.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.SevenZipString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\7z2201-x64.exe" -Arguments "/S"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.SevenZipString
|
|
}
|
|
}
|
|
|
|
|
|
if ($sync.SoftTree_Node_ShareX.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.InstallingString + $sync.ShareXString + " : "
|
|
Start-Process-With-Timeout -FilePath "$DownloadPath\ShareX-15.0.0-setup.exe" -Arguments "/VERYSILENT /NORESTART /NORUN"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.ShareXString
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
if (Is-Configure-Selected)
|
|
{
|
|
$sync.Textbox.AppendText("`r`n`r`n" + $sync.ConfiguringTitleString + "`r`n")
|
|
|
|
if ($sync.MustTree_Node_Rtss.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.ConfiguringString + $sync.RtssString + " : "
|
|
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
|
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
|
$action = New-ScheduledTaskAction -Execute "$Env:ProgramFiles (x86)\RivaTuner Statistics Server\RTSS.exe"
|
|
$description = "Start RivaTuner at Login"
|
|
Register-ScheduledTask -TaskName "RivaTuner" -Action $action -Trigger $trigger -RunLevel Highest -Description $description -Settings $settings >> $null
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.RtssString
|
|
}
|
|
}
|
|
|
|
|
|
if ($sync.MustTree_Node_DeckTools.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.ConfiguringString + $sync.DeckToolsString + " : "
|
|
# Setting FanControl to run on login
|
|
Start-Process -FilePath "$Env:Programfiles\SteamDeckTools\FanControl.exe" -ArgumentList "-run-on-startup"
|
|
# Setting PerformanceOverlay to run on login
|
|
Start-Process -FilePath "$Env:Programfiles\SteamDeckTools\PerformanceOverlay.exe" -ArgumentList "-run-on-startup"
|
|
# Setting PowerControl to run on login
|
|
Start-Process -FilePath "$Env:Programfiles\SteamDeckTools\PowerControl.exe" -ArgumentList "-run-on-startup"
|
|
# Setting SteamController to run on login
|
|
Start-Process -FilePath "$Env:Programfiles\SteamDeckTools\SteamController.exe" -ArgumentList "-run-on-startup"
|
|
# Creating Desktop Shortcuts for SteamDeckTools
|
|
$DesktopPath = [Environment]::GetFolderPath('Desktop')
|
|
$shell = New-Object -comObject WScript.Shell
|
|
$shortcut = $shell.CreateShortcut("$DesktopPath\FanControl.lnk")
|
|
$shortcut.TargetPath = "$Env:Programfiles\SteamDeckTools\FanControl.exe"
|
|
$shortcut.Save()
|
|
|
|
$shell = New-Object -comObject WScript.Shell
|
|
$shortcut = $shell.CreateShortcut("$DesktopPath\PerformanceOverlay.lnk")
|
|
$shortcut.TargetPath = "$Env:Programfiles\SteamDeckTools\PerformanceOverlay.exe"
|
|
$shortcut.Save()
|
|
|
|
$shell = New-Object -comObject WScript.Shell
|
|
$shortcut = $shell.CreateShortcut("$DesktopPath\PowerControl.lnk")
|
|
$shortcut.TargetPath = "$Env:Programfiles\SteamDeckTools\PowerControl.exe"
|
|
$shortcut.Save()
|
|
|
|
$shell = New-Object -comObject WScript.Shell
|
|
$shortcut = $shell.CreateShortcut("$DesktopPath\SteamController.lnk")
|
|
$shortcut.TargetPath = "$Env:Programfiles\SteamDeckTools\SteamController.exe"
|
|
$shortcut.Save()
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.DeckToolsString
|
|
}
|
|
}
|
|
}
|
|
|
|
if (Is-Tweak-Selected)
|
|
{
|
|
$sync.Textbox.AppendText("`r`n`r`n" + $sync.TweakingTitleString + "`r`n")
|
|
|
|
if ($sync.MustTree_Node_Hibernation.Checked)
|
|
{
|
|
try
|
|
{
|
|
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.HibernationString + " : "
|
|
Start-Process -FilePath "PowerCfg" -ArgumentList " /h off" -Wait
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.HibernationString
|
|
}
|
|
}
|
|
|
|
if ($sync.MustTree_Node_Utc.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.UtcString + " : "
|
|
Start-Process -FilePath "reg" -ArgumentList "add `"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation`" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f" -Wait
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.UtcString
|
|
}
|
|
|
|
}
|
|
|
|
if ($sync.TweaksTree_Node_GameBar.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.GameBarString + " : "
|
|
reg add HKCR\ms-gamebar /f /ve /d URL:ms-gamebar 2>&1 >''
|
|
reg add HKCR\ms-gamebar /f /v "URL Protocol" /d " " 2>&1 >''
|
|
reg add HKCR\ms-gamebar /f /v "NoOpenWith" /d " " 2>&1 >''
|
|
reg add HKCR\ms-gamebar\shell\open\command /f /ve /d "\`"$env:SystemRoot\System32\systray.exe\`"" 2>&1 >''
|
|
reg add HKCR\ms-gamebarservices /f /ve /d URL:ms-gamebarservices 2>&1 >''
|
|
reg add HKCR\ms-gamebarservices /f /v "URL Protocol" /d " " 2>&1 >''
|
|
reg add HKCR\ms-gamebarservices /f /v "NoOpenWith" /d " " 2>&1 >''
|
|
reg add HKCR\ms-gamebarservices\shell\open\command /f /ve /d "\`"$env:SystemRoot\System32\systray.exe\`"" 2>&1 >''
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.GameBarString
|
|
}
|
|
|
|
}
|
|
|
|
if ($sync.TweaksTree_Node_LoginSleep.Checked)
|
|
{
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.LoginSleepString + " : "
|
|
Start-Process -FilePath "PowerCfg" -ArgumentList "/SETACVALUEINDEX SCHEME_CURRENT SUB_NONE CONSOLELOCK 0"
|
|
Start-Process -FilePath "PowerCfg" -ArgumentList "/SETDCVALUEINDEX SCHEME_CURRENT SUB_NONE CONSOLELOCK 0"
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.LoginSleepString
|
|
}
|
|
|
|
}
|
|
|
|
if ($sync.TweaksTree_Node_ShowKeyboard.Checked)
|
|
{
|
|
|
|
try
|
|
{
|
|
$sync.Textbox.Text = $sync.Textbox.Text + "`r`n - " + $sync.ShowKeyboardString + " : "
|
|
Start-Process -FilePath "reg" -ArgumentList "add `"HKEY_CURRENT_USER\SOFTWARE\Microsoft\TabletTip\1.7`" /t REG_DWORD /v EnableDesktopModeAutoInvoke /d 1 /f" -Wait
|
|
$sync.Textbox.AppendText($sync.DoneString)
|
|
}
|
|
catch
|
|
{
|
|
Report-Error -Error $_.Exception.Message -Name $sync.ShowKeyboardString
|
|
}
|
|
}
|
|
}
|
|
|
|
if ((Is-Download-Selected) -or (Is-Tweak-Selected))
|
|
{
|
|
if ($global:Errors.Count -gt 0)
|
|
{
|
|
if ([System.Windows.MessageBox]::Show($sync.FinishErrors1String + $global:Errors + $sync.FinishErrors2String + ($sync.rootPath + "\windeckhelper_errors.log"), 'WinDeckHelper', 'YesNo') -eq 'Yes')
|
|
{
|
|
|
|
foreach ($item in (Get-Content ($sync.rootPath + "\windeckhelper_errors.log") -Encoding UTF8))
|
|
{
|
|
$log = $log + "`n" + $item
|
|
|
|
}
|
|
|
|
[System.Windows.MessageBox]::Show($log, "WinDeckHelper")
|
|
}
|
|
}
|
|
|
|
else
|
|
{
|
|
if ([System.Windows.MessageBox]::Show($sync.FinishSuccessString, 'WinDeckHelper', 'YesNo') -eq 'Yes')
|
|
{
|
|
Restart-Computer
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$sync.Tabs.Enabled = $true
|
|
$sync.BrowseButton.Enabled = $true
|
|
$sync.OSKeyboardButton.Enabled = $true
|
|
$sync.OrientationButton.Enabled = $true
|
|
$sync.StartButton.Enabled = $true
|
|
$sync.LangComboBox.Enabled = $true
|
|
|
|
})
|
|
|
|
# Adding Set-Orientation function to the Runspace
|
|
$initialSessionState = [InitialSessionState]::CreateDefault()
|
|
$definition = Get-Content Function:\Set-Orientation -ErrorAction Stop
|
|
$addMessageSessionStateFunction = New-Object System.Management.Automation.Runspaces.SessionStateFunctionEntry -ArgumentList 'Set-Orientation', $definition
|
|
$initialSessionState.Commands.Add($addMessageSessionStateFunction)
|
|
|
|
$runspace = [RunspaceFactory]::CreateRunspace($initialSessionState)
|
|
$runspace.ApartmentState = "STA"
|
|
$runspace.ThreadOptions = "ReuseThread"
|
|
$runspace.Open()
|
|
$runspace.SessionStateProxy.SetVariable("sync", $sync)
|
|
|
|
$count.Runspace = $runspace
|
|
$count.BeginInvoke()
|
|
}
|
|
|
|
#Localization
|
|
|
|
switch ($global:Lang)
|
|
{
|
|
"ENG"
|
|
{
|
|
$SelectAllString = 'Select all'
|
|
#Controls
|
|
$MustHavePageString = 'Must-Have'
|
|
$TweaksPageString = 'Tweaks'
|
|
$SoftPageString = 'Soft'
|
|
$DownPathLabelString = 'Download files to:'
|
|
$BrowseButtonString = 'Browse...'
|
|
$StartButtonString = 'START'
|
|
$CancelButtonString = 'CANCEL'
|
|
$OSKeyboardButtonString = 'Open On-Screen Keyboard'
|
|
$OrientationButtonString = 'Change Screen Orientation'
|
|
#Must-Have
|
|
$DriversString = 'Drivers'
|
|
$sync.VideoDriverString = 'Video driver'
|
|
$sync.AudioDriverString = 'Audio driver'
|
|
$sync.NetworkDriverString = 'Wi-Fi driver'
|
|
$sync.BluetoothDriverString = 'Bluetooth driver'
|
|
$sync.CardReaderDriverString = 'SDcard reader driver'
|
|
$sync.HibernationString = 'Disable hibernation'
|
|
$sync.UtcString = 'Set internal clock to UTC'
|
|
$sync.CruConfigString = 'Custom Resolution Utility profile'
|
|
#Tweaks
|
|
$sync.OskString = 'ReplaceOSK (Touch keyboard)'
|
|
$sync.ShowKeyboardString = 'Show touch keyboard'
|
|
$sync.EqualizerString = 'Equalizer APO'
|
|
$sync.LoginSleepString = 'Disable login after sleep'
|
|
$sync.GameBarString = 'Disable "ms-gamebar" error'
|
|
$sync.EqualizerPopupString = "Select 'Speakers' and click 'OK' in EqualizerAPO configuration popup"
|
|
#Soft
|
|
$sync.SteamString = 'Steam client'
|
|
$sync.ChromeString = 'Chrome browser'
|
|
$sync.SevenZipString = '7-zip archivator'
|
|
$sync.ShareXString = 'ShareX screenshot tool'
|
|
#Progress Strings
|
|
$sync.DownloadingTitleString = '# DOWNLOAD'
|
|
$sync.DownloadingString = 'Downloading'
|
|
$sync.InstallingTitleString = '# INSTALLATION'
|
|
$sync.InstallingString = 'Installing '
|
|
$sync.ConfiguringTitleString = '# CONFIGURATION'
|
|
$sync.ConfiguringString = 'Configuration '
|
|
$sync.TweakingTitleString = '# TWEAKS'
|
|
$sync.DoneString = 'Done!'
|
|
$sync.ErrorString = 'Error!'
|
|
$sync.TimeoutErrorString = 'Timeout Error!'
|
|
#Network error
|
|
$sync.NetworkErrorString = 'Network Connection Error. Please check your internet connection'
|
|
#Info
|
|
$MustHaveInfoString = 'musthave_info_eng.txt'
|
|
$TweaksInfoString = 'tweaks_info_eng.txt'
|
|
$SoftInfoString = 'soft_info_eng.txt'
|
|
#Finish
|
|
$sync.FinishErrors1String = "Following components FAILED to install:`n `n"
|
|
$sync.FinishErrors2String = "`nShow errors log file?`n`n"
|
|
$sync.FinishSuccessString = "All components have been successfully installed! `n`nDo you want to restart the device?"
|
|
}
|
|
"RUS"
|
|
{
|
|
$SelectAllString = 'Выбрать все'
|
|
#Controls
|
|
$MustHavePageString = 'Маст-Хэв'
|
|
$TweaksPageString = 'Улучшалки'
|
|
$SoftPageString = 'Софт'
|
|
$DownPathLabelString = 'Скачивать файлы в:'
|
|
$BrowseButtonString = 'Выбрать...'
|
|
$StartButtonString = 'СТАРТ'
|
|
$CancelButtonString = 'ОТМЕНА'
|
|
$OSKeyboardButtonString = 'Откр. экран. клавиатуру'
|
|
$OrientationButtonString = 'Изм. экран. ориентацию'
|
|
#Must-Have
|
|
$DriversString = 'Драйверы'
|
|
$sync.VideoDriverString = 'Видео драйвер'
|
|
$sync.AudioDriverString = 'Аудио драйвер'
|
|
$sync.NetworkDriverString = 'Wi-Fi драйвер'
|
|
$sync.BluetoothDriverString = 'Bluetooth драйвер'
|
|
$sync.CardReaderDriverString = 'Драйвер считывателя SD-карты'
|
|
$sync.HibernationString = 'Выкл. гибернацию'
|
|
$sync.UtcString = 'Установка часов в UTC'
|
|
$sync.CruConfigString = 'Custom Resolution Utility профиль'
|
|
#Tweaks
|
|
$sync.OskString = 'ReplaceOSK (Тач клавиатура)'
|
|
$sync.ShowKeyboardString = 'Показ. тач клавиатуру'
|
|
$sync.EqualizerString = 'Equalizer APO (Эквалайзер)'
|
|
$sync.LoginSleepString = 'Выкл. логин после сна'
|
|
$sync.GameBarString = 'Выкл. "ms-gamebar" ошибку'
|
|
$sync.EqualizerPopupString = "Выберете 'Speakers' и нажмите 'OK' в окне конфигурации EqualizerAPO"
|
|
#Soft
|
|
$sync.SteamString = 'Steam клиент'
|
|
$sync.ChromeString = 'Chrome браузер'
|
|
$sync.SevenZipString = '7-zip архиватор'
|
|
$sync.ShareXString = 'ShareX скриншот утилита'
|
|
#Progress Strings
|
|
$sync.DownloadingTitleString = '# СКАЧИВАНИЕ'
|
|
$sync.DownloadingString = 'Скачивание'
|
|
$sync.InstallingTitleString = '# УСТАНОВКА'
|
|
$sync.InstallingString = 'Установка '
|
|
$sync.ConfiguringTitleString = '# КОНФИГУРАЦИЯ'
|
|
$sync.ConfiguringString = 'Конфигурация '
|
|
$sync.TweakingTitleString = '# УЛУЧШАЛКИ'
|
|
$sync.DoneString = 'Готово!'
|
|
$sync.ErrorString = 'Ошибка!'
|
|
$sync.TimeoutErrorString = 'Таймаут Ошибка!'
|
|
#Network error
|
|
$sync.NetworkErrorString = 'Ошибка соединения. Проверьте подключение к сети.'
|
|
#Info
|
|
$MustHaveInfoString = 'musthave_info_rus.txt'
|
|
$TweaksInfoString = 'tweaks_info_rus.txt'
|
|
$SoftInfoString = 'soft_info_rus.txt'
|
|
#Finish
|
|
$sync.FinishErrors1String = "Произошла ОШИБКА во время установки следующих компонентов:`n `n"
|
|
$sync.FinishErrors2String = "`nПоказать лог файл с ошибками?`n`n"
|
|
$sync.FinishSuccessString = "Все компоненты успешно установились! `n`nЖелаете перезагрузить устройство?"
|
|
}
|
|
|
|
{ $_ -in "ENG", "RUS" } {
|
|
$sync.VcString = 'Microsoft Visual C++'
|
|
$sync.DirectXString = 'Microsoft DirectX'
|
|
$sync.DotNetString = 'Dot NET 6.0'
|
|
$sync.RtssString = 'Rivatuner Statistics Server'
|
|
$sync.AdrenalinString = 'AMD Adrenalin'
|
|
$sync.CruString = 'Custom Resolution Utility'
|
|
$sync.DeckToolsString = 'Steam Deck Tools'
|
|
$sync.VigemBusString = 'ViGEmBus'
|
|
}
|
|
}
|
|
|
|
if ((Test-Connection -ComputerName www.google.com -Quiet -Count 2) -eq $false)
|
|
{
|
|
[System.Windows.MessageBox]::Show($sync.NetworkErrorString, "WinDeckHelper") | Out-Null
|
|
}
|
|
|
|
$DownPath = (New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path
|
|
|
|
$sync.DownloadPath = $DownPath
|
|
|
|
Function Show-Info
|
|
{
|
|
$Textbox.Text = ' '
|
|
|
|
switch ($Tabs.SelectedIndex)
|
|
{
|
|
0 {
|
|
$Info = $MustHaveInfoString
|
|
}
|
|
1 {
|
|
$Info = $TweaksInfoString
|
|
}
|
|
2 {
|
|
$Info = $SoftInfoString
|
|
}
|
|
}
|
|
|
|
foreach ($item in (Get-Content ".\$Info" -Encoding UTF8))
|
|
{
|
|
$Textbox.AppendText(' ' + $item + "`r`n")
|
|
$Textbox.SelectionStart = 1
|
|
$Textbox.ScrollToCaret()
|
|
}
|
|
}
|
|
|
|
function Check-Selected-Nodes
|
|
{
|
|
param (
|
|
$Tree
|
|
)
|
|
|
|
$Tree.SelectedNode = $null
|
|
|
|
if ($_.Node.Checked)
|
|
{
|
|
$_.Node.Checked = $false
|
|
}
|
|
else
|
|
{
|
|
$_.Node.Checked = $true
|
|
}
|
|
}
|
|
|
|
function Check-Nodes
|
|
{
|
|
param (
|
|
$Tree
|
|
)
|
|
|
|
if ($_.Node.Name -eq 'SelectAll')
|
|
{
|
|
$i = 1
|
|
while ($i -lt $Tree.Nodes.Count)
|
|
{
|
|
$Tree.Nodes[$i].Checked = $_.Node.Checked
|
|
$i++
|
|
}
|
|
}
|
|
if ($_.Node.Nodes.Count -gt 0)
|
|
{
|
|
$i = 0
|
|
while ($i -lt $_.Node.Nodes.Count)
|
|
{
|
|
$_.Node.Nodes[$i].Checked = $_.Node.Checked
|
|
$i++
|
|
}
|
|
}
|
|
}
|
|
|
|
#----------------------------------------------
|
|
#region Generated Form Objects
|
|
#----------------------------------------------
|
|
[System.Windows.Forms.Application]::EnableVisualStyles()
|
|
$LangComboBox = New-Object 'System.Windows.Forms.ComboBox'
|
|
$MainForm = New-Object 'System.Windows.Forms.Form'
|
|
$DownPathButton = New-Object 'System.Windows.Forms.Button'
|
|
$DownPathLabel = New-Object 'System.Windows.Forms.Label'
|
|
$Textbox = New-Object 'System.Windows.Forms.TextBox'
|
|
$Tabs = New-Object 'System.Windows.Forms.TabControl'
|
|
$MusthavePage = New-Object 'System.Windows.Forms.TabPage'
|
|
$SoftPage = New-Object 'System.Windows.Forms.TabPage'
|
|
$TweaksPage = New-Object 'System.Windows.Forms.TabPage'
|
|
$MustTree = New-Object 'System.Windows.Forms.TreeView'
|
|
$TweaksTree = New-Object 'System.Windows.Forms.TreeView'
|
|
$SoftTree = New-Object 'System.Windows.Forms.TreeView'
|
|
$OSKeyboardButton = New-Object 'System.Windows.Forms.Button'
|
|
$OrientationButton = New-Object 'System.Windows.Forms.Button'
|
|
$CancelButton = New-Object 'System.Windows.Forms.Button'
|
|
$BrowseButton = New-Object 'System.Windows.Forms.Button'
|
|
$StartButton = New-Object 'System.Windows.Forms.Button'
|
|
$folderbrowserdialog = New-Object 'System.Windows.Forms.FolderBrowserDialog'
|
|
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
|
|
|
|
#
|
|
# formTest
|
|
#
|
|
$sync.Tabs = $Tabs
|
|
$sync.Textbox = $Textbox
|
|
$sync.StartButton = $StartButton
|
|
$sync.BrowseButton = $BrowseButton
|
|
$sync.OrientationButton = $OrientationButton
|
|
$sync.OSKeyboardButton = $OSKeyboardButton
|
|
$sync.buttonCANCEL = $CancelButton
|
|
$sync.LangComboBox = $LangComboBox
|
|
|
|
$MainForm.Controls.Add($sync.LangComboBox)
|
|
$MainForm.Controls.Add($sync.Textbox)
|
|
$MainForm.Controls.Add($sync.StartButton)
|
|
$MainForm.Controls.Add($DownPathButton)
|
|
$MainForm.Controls.Add($DownPathLabel)
|
|
$MainForm.Controls.Add($sync.Tabs)
|
|
$MainForm.Controls.Add($sync.OSKeyboardButton)
|
|
$MainForm.Controls.Add($sync.OrientationButton)
|
|
$MainForm.Controls.Add($sync.buttonCANCEL)
|
|
$MainForm.Controls.Add($sync.BrowseButton)
|
|
$MainForm.AutoScaleDimensions = New-Object System.Drawing.SizeF(6, 13)
|
|
$MainForm.AutoScaleMode = 'Font'
|
|
$MainForm.BackColor = [System.Drawing.SystemColors]::ButtonHighlight
|
|
$MainForm.BackgroundImageLayout = 'None'
|
|
$MainForm.ClientSize = New-Object System.Drawing.Size(600, 472)
|
|
$MainForm.FormBorderStyle = 'Fixed3D'
|
|
$MainForm.MaximizeBox = $False
|
|
$MainForm.StartPosition = 'CenterScreen'
|
|
$MainForm.Text = "WinDeckHelper"
|
|
$MainForm.Icon = New-Object system.drawing.icon ($sync.rootPath + "\Windeckicon.ico")
|
|
$sync.MainForm = $MainForm
|
|
#
|
|
# LangComboBox
|
|
#
|
|
$LangComboBox.DropDownStyle = 'DropDownList'
|
|
$LangComboBox.FormattingEnabled = $True
|
|
[void]$LangComboBox.Items.Add('ENG')
|
|
[void]$LangComboBox.Items.Add('RUS')
|
|
$LangComboBox.Location = New-Object System.Drawing.Point(530, 8)
|
|
$LangComboBox.Name = 'LangComboBox'
|
|
$LangComboBox.Size = New-Object System.Drawing.Size(58, 25)
|
|
$LangComboBox.TabIndex = 42
|
|
$LangComboBox.SelectedIndex = $LangComboBox.FindString($global:Lang)
|
|
$LangComboBox.Font = [System.Drawing.Font]::new('Microsoft Sans Serif', '10')
|
|
$LangComboBox.Add_SelectedIndexChanged({
|
|
|
|
if ($LangComboBox.SelectedItem -eq "RUS" -and $global:Lang -eq 'ENG')
|
|
{
|
|
$global:Lang = 'RUS'
|
|
$global:NeedReset = $true
|
|
$MainForm.Close()
|
|
}
|
|
if ($LangComboBox.SelectedItem -eq "ENG" -and $global:Lang -eq 'RUS')
|
|
{
|
|
$global:Lang = 'ENG'
|
|
$global:NeedReset = $true
|
|
$MainForm.Close()
|
|
}
|
|
})
|
|
|
|
#
|
|
# DownPathButton
|
|
#
|
|
$DownPathButton.Enabled = $False
|
|
$DownPathButton.Location = New-Object System.Drawing.Point(12, 390)
|
|
$DownPathButton.Name = 'DownPathButton'
|
|
$DownPathButton.Size = New-Object System.Drawing.Size(486, 29)
|
|
$DownPathButton.TabIndex = 41
|
|
$DownPathButton.TextAlign = 'MiddleLeft'
|
|
$DownPathButton.Text = $DownPath
|
|
$DownPathButton.UseVisualStyleBackColor = $True
|
|
#
|
|
# DownPathLabel
|
|
#
|
|
$DownPathLabel.AutoSize = $True
|
|
$DownPathLabel.Location = New-Object System.Drawing.Point(12, 374)
|
|
$DownPathLabel.Name = 'DownPathLabel'
|
|
$DownPathLabel.Text = $DownPathLabelString
|
|
$DownPathLabel.Size = New-Object System.Drawing.Size(98, 13)
|
|
$DownPathLabel.TabIndex = 40
|
|
#
|
|
# Textbox
|
|
#
|
|
$Textbox.BackColor = [System.Drawing.Color]::WhiteSmoke
|
|
$Textbox.BorderStyle = 'None'
|
|
$Textbox.Cursor = 'Default'
|
|
$Textbox.Location = New-Object System.Drawing.Point(228, 39)
|
|
$Textbox.Multiline = $True
|
|
$Textbox.Name = 'Textbox'
|
|
$Textbox.Size = New-Object System.Drawing.Size(359, 322)
|
|
$Textbox.ScrollBars = 'Vertical'
|
|
$Textbox.Font = [System.Drawing.Font]::new('Microsoft Sans Serif', '8.50')
|
|
$Textbox.TabIndex = 38
|
|
#
|
|
# Tabs
|
|
#
|
|
$Tabs.Controls.Add($MusthavePage)
|
|
$Tabs.Controls.Add($TweaksPage)
|
|
$Tabs.Controls.Add($SoftPage)
|
|
$Tabs.ItemSize = New-Object System.Drawing.Size(64, 25)
|
|
$Tabs.Location = New-Object System.Drawing.Point(12, 12)
|
|
$Tabs.Multiline = $True
|
|
$Tabs.Name = 'Tabs'
|
|
$Tabs.SelectedIndex = 0
|
|
$Tabs.Size = New-Object System.Drawing.Size(214, 349)
|
|
$Tabs.TabIndex = 6
|
|
$Tabs.Add_SelectedIndexChanged({
|
|
Show-Info
|
|
})
|
|
#
|
|
# MustHavePage
|
|
#
|
|
$MustHavePage.Controls.Add($MustTree)
|
|
$MustHavePage.BackColor = [System.Drawing.Color]::WhiteSmoke
|
|
$MustHavePage.Location = New-Object System.Drawing.Point(4, 29)
|
|
$MustHavePage.Padding = '3, 3, 3, 3'
|
|
$MustHavePage.Size = New-Object System.Drawing.Size(207, 316)
|
|
$MustHavePage.Text = $MustHavePageString
|
|
#
|
|
# MustTree
|
|
#
|
|
$MustTree.BackColor = [System.Drawing.Color]::WhiteSmoke
|
|
$MustTree.BorderStyle = 'None'
|
|
$MustTree.ItemHeight = 25
|
|
$MustTree.Location = New-Object System.Drawing.Point(-4, 2)
|
|
$MustTree.CheckBoxes = $true
|
|
$MustTree.Name = 'MustTree'
|
|
$MustTree_Node_SelectAll = New-Object 'System.Windows.Forms.TreeNode' ($SelectAllString)
|
|
$MustTree_Node_SelectAll.Name = 'SelectAll'
|
|
[void]$MustTree.Nodes.Add($MustTree_Node_SelectAll)
|
|
$MustTree_Node_VideoDriver = New-Object 'System.Windows.Forms.TreeNode' ($sync.VideoDriverString)
|
|
$sync.MustTree_Node_VideoDriver = $MustTree_Node_VideoDriver
|
|
$MustTree_Node_AudioDriver = New-Object 'System.Windows.Forms.TreeNode' ($sync.AudioDriverString)
|
|
$sync.MustTree_Node_AudioDriver = $MustTree_Node_AudioDriver
|
|
$MustTree_Node_NetworkDriver = New-Object 'System.Windows.Forms.TreeNode' ($sync.NetworkDriverString)
|
|
$sync.MustTree_Node_NetworkDriver = $MustTree_Node_NetworkDriver
|
|
$MustTree_Node_BluetoothDriver = New-Object 'System.Windows.Forms.TreeNode' ($sync.BluetoothDriverString)
|
|
$sync.MustTree_Node_BluetoothDriver = $MustTree_Node_BluetoothDriver
|
|
$MustTree_Node_CardReaderDriver = New-Object 'System.Windows.Forms.TreeNode' ($sync.CardReaderDriverString)
|
|
$sync.MustTree_Node_CardReaderDriver = $MustTree_Node_CardReaderDriver
|
|
$MustTree_Node_Drivers = New-Object 'System.Windows.Forms.TreeNode' ($DriversString, [System.Windows.Forms.TreeNode[]] ($sync.MustTree_Node_VideoDriver, $sync.MustTree_Node_AudioDriver, $sync.MustTree_Node_NetworkDriver, $sync.MustTree_Node_BluetoothDriver, $sync.MustTree_Node_CardReaderDriver))
|
|
[void]$MustTree.Nodes.Add($MustTree_Node_Drivers)
|
|
$MustTree_Node_Vc = New-Object 'System.Windows.Forms.TreeNode' ($sync.VcString)
|
|
$sync.MustTree_Node_Vc = $MustTree_Node_Vc
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_Vc)
|
|
$MustTree_Node_DirectX = New-Object 'System.Windows.Forms.TreeNode' ($sync.DirectXString)
|
|
$sync.MustTree_Node_DirectX = $MustTree_Node_DirectX
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_DirectX)
|
|
$MustTree_Node_DotNet = New-Object 'System.Windows.Forms.TreeNode' ($sync.DotNetString)
|
|
$sync.MustTree_Node_DotNet = $MustTree_Node_DotNet
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_DotNet)
|
|
$MustTree_Node_Rtss = New-Object 'System.Windows.Forms.TreeNode' ($sync.RtssString)
|
|
$sync.MustTree_Node_Rtss = $MustTree_Node_Rtss
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_Rtss)
|
|
$MustTree_Node_Adrenalin = New-Object 'System.Windows.Forms.TreeNode' ($sync.AdrenalinString)
|
|
$sync.MustTree_Node_Adrenalin = $MustTree_Node_Adrenalin
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_Adrenalin)
|
|
$MustTree_Node_Cru = New-Object 'System.Windows.Forms.TreeNode' ($sync.CruString)
|
|
$sync.MustTree_Node_Cru = $MustTree_Node_Cru
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_Cru)
|
|
$MustTree_Node_DeckTools = New-Object 'System.Windows.Forms.TreeNode' ($sync.DeckToolsString)
|
|
$sync.MustTree_Node_DeckTools = $MustTree_Node_DeckTools
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_DeckTools)
|
|
$MustTree_Node_Hibernation = New-Object 'System.Windows.Forms.TreeNode' ($sync.HibernationString)
|
|
$sync.MustTree_Node_Hibernation = $MustTree_Node_Hibernation
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_Hibernation)
|
|
$MustTree_Node_Utc = New-Object 'System.Windows.Forms.TreeNode' ($sync.UtcString)
|
|
$sync.MustTree_Node_Utc = $MustTree_Node_Utc
|
|
[void]$MustTree.Nodes.Add($sync.MustTree_Node_Utc)
|
|
$MustTree.Size = New-Object System.Drawing.Size(215, 322)
|
|
$MustTree.TabIndex = 42
|
|
|
|
$MustTree.add_AfterSelect({
|
|
Check-Selected-Nodes -Tree $MustTree
|
|
})
|
|
|
|
$MustTree.add_AfterCheck({
|
|
Check-Nodes -Tree $MustTree
|
|
})
|
|
|
|
#
|
|
# TweaksPage
|
|
#
|
|
$TweaksPage.Controls.Add($TweaksTree)
|
|
$TweaksPage.Location = New-Object System.Drawing.Point(4, 29)
|
|
$TweaksPage.Name = 'TweaksPage'
|
|
$TweaksPage.Padding = '3, 3, 3, 3'
|
|
$TweaksPage.Size = New-Object System.Drawing.Size(207, 316)
|
|
$TweaksPage.TabIndex = 2
|
|
$TweaksPage.UseVisualStyleBackColor = $True
|
|
$TweaksPage.Text = $TweaksPageString
|
|
#
|
|
# TweaksTree
|
|
#
|
|
$TweaksTree.BackColor = [System.Drawing.Color]::WhiteSmoke
|
|
$TweaksTree.BorderStyle = 'None'
|
|
$TweaksTree.ItemHeight = 25
|
|
$TweaksTree.Location = New-Object System.Drawing.Point(-4, 2)
|
|
$TweaksTree.CheckBoxes = $true
|
|
$TweaksTree.Name = 'TweaksTree'
|
|
$TweaksTree_Node_SelectAll = New-Object 'System.Windows.Forms.TreeNode' ($SelectAllString)
|
|
$TweaksTree_Node_SelectAll.Name = 'SelectAll'
|
|
[void]$TweaksTree.Nodes.Add($TweaksTree_Node_SelectAll)
|
|
$TweaksTree_Node_Osk = New-Object 'System.Windows.Forms.TreeNode' ($sync.OskString)
|
|
$sync.TweaksTree_Node_Osk = $TweaksTree_Node_Osk
|
|
[void]$TweaksTree.Nodes.Add($sync.TweaksTree_Node_Osk)
|
|
$TweaksTree_Node_ShowKeyboard = New-Object 'System.Windows.Forms.TreeNode' ($sync.ShowKeyboardString)
|
|
$sync.TweaksTree_Node_ShowKeyboard = $TweaksTree_Node_ShowKeyboard
|
|
[void]$TweaksTree.Nodes.Add($sync.TweaksTree_Node_ShowKeyboard)
|
|
$TweaksTree_Node_Equalizer = New-Object 'System.Windows.Forms.TreeNode' ($sync.EqualizerString)
|
|
$sync.TweaksTree_Node_Equalizer = $TweaksTree_Node_Equalizer
|
|
[void]$TweaksTree.Nodes.Add($sync.TweaksTree_Node_Equalizer)
|
|
$TweaksTree_Node_LoginSleep = New-Object 'System.Windows.Forms.TreeNode' ($sync.LoginSleepString)
|
|
$sync.TweaksTree_Node_LoginSleep = $TweaksTree_Node_LoginSleep
|
|
[void]$TweaksTree.Nodes.Add($sync.TweaksTree_Node_LoginSleep)
|
|
$TweaksTree_Node_GameBar = New-Object 'System.Windows.Forms.TreeNode' ($sync.GameBarString)
|
|
$sync.TweaksTree_Node_GameBar = $TweaksTree_Node_GameBar
|
|
[void]$TweaksTree.Nodes.Add($sync.TweaksTree_Node_GameBar)
|
|
$TweaksTree.Size = New-Object System.Drawing.Size(215, 322)
|
|
$TweaksTree.TabIndex = 42
|
|
|
|
$TweaksTree.add_AfterSelect({
|
|
Check-Selected-Nodes -Tree $TweaksTree
|
|
})
|
|
|
|
$TweaksTree.add_AfterCheck({
|
|
Check-Nodes -Tree $TweaksTree
|
|
})
|
|
#
|
|
# SoftPage
|
|
#
|
|
$SoftPage.Controls.Add($SoftTree)
|
|
$SoftPage.Location = New-Object System.Drawing.Point(4, 29)
|
|
$SoftPage.Name = 'SoftPage'
|
|
$SoftPage.Padding = '3, 3, 3, 3'
|
|
$SoftPage.Size = New-Object System.Drawing.Size(207, 316)
|
|
$SoftPage.TabIndex = 2
|
|
$SoftPage.UseVisualStyleBackColor = $True
|
|
$SoftPage.Text = $SoftPageString
|
|
#
|
|
# SoftTree
|
|
#
|
|
$SoftTree.BackColor = [System.Drawing.Color]::WhiteSmoke
|
|
$SoftTree.BorderStyle = 'None'
|
|
$SoftTree.ItemHeight = 25
|
|
$SoftTree.Location = New-Object System.Drawing.Point(-4, 2)
|
|
$SoftTree.CheckBoxes = $true
|
|
$SoftTree.Name = 'SoftTree'
|
|
$SoftTree_Node_SelectAll = New-Object 'System.Windows.Forms.TreeNode' ($SelectAllString)
|
|
$SoftTree_Node_SelectAll.Name = 'SelectAll'
|
|
[void]$SoftTree.Nodes.Add($SoftTree_Node_SelectAll)
|
|
$SoftTree_Node_Steam = New-Object 'System.Windows.Forms.TreeNode' ($sync.SteamString)
|
|
$sync.SoftTree_Node_Steam = $SoftTree_Node_Steam
|
|
[void]$SoftTree.Nodes.Add($sync.SoftTree_Node_Steam)
|
|
$SoftTree_Node_Chrome = New-Object 'System.Windows.Forms.TreeNode' ($sync.ChromeString)
|
|
$sync.SoftTree_Node_Chrome = $SoftTree_Node_Chrome
|
|
[void]$SoftTree.Nodes.Add($sync.SoftTree_Node_Chrome)
|
|
$SoftTree_Node_7zip = New-Object 'System.Windows.Forms.TreeNode' ($sync.SevenZipString)
|
|
$sync.SoftTree_Node_7zip = $SoftTree_Node_7zip
|
|
[void]$SoftTree.Nodes.Add($sync.SoftTree_Node_7zip)
|
|
$SoftTree_Node_ShareX = New-Object 'System.Windows.Forms.TreeNode' ($sync.ShareXString)
|
|
$sync.SoftTree_Node_ShareX = $SoftTree_Node_ShareX
|
|
[void]$SoftTree.Nodes.Add($sync.SoftTree_Node_ShareX)
|
|
$SoftTree.Size = New-Object System.Drawing.Size(287, 421)
|
|
$SoftTree.TabIndex = 43
|
|
|
|
$SoftTree.add_AfterSelect({
|
|
Check-Selected-Nodes -Tree $SoftTree
|
|
})
|
|
|
|
$SoftTree.add_AfterCheck({
|
|
Check-Nodes -Tree $SoftTree
|
|
})
|
|
|
|
#
|
|
# OSKeyboardButton
|
|
#
|
|
$OSKeyboardButton.Location = New-Object System.Drawing.Point(278, 429)
|
|
$OSKeyboardButton.Name = 'OSKeyboardButton'
|
|
$OSKeyboardButton.Text = $OSKeyboardButtonString
|
|
$OSKeyboardButton.Size = New-Object System.Drawing.Size(154, 35)
|
|
$OSKeyboardButton.TabIndex = 5
|
|
$OSKeyboardButton.UseVisualStyleBackColor = $True
|
|
# $OSKeyboardButton.Font = [System.Drawing.Font]::new('Microsoft Sans Serif', '7.50')
|
|
$OSKeyboardButton.Add_Click({ osk })
|
|
#
|
|
# OrientationButton
|
|
#
|
|
$OrientationButton.Location = New-Object System.Drawing.Point(437, 429)
|
|
$OrientationButton.Name = 'OrientationButton'
|
|
$OrientationButton.Text = $OrientationButtonString
|
|
$OrientationButton.Size = New-Object System.Drawing.Size(154, 35)
|
|
$OrientationButton.TabIndex = 5
|
|
$OrientationButton.UseVisualStyleBackColor = $True
|
|
# $OrientationButton.Font = [System.Drawing.Font]::new('Microsoft Sans Serif', '7.50')
|
|
$OrientationButton.Add_Click({ Set-Orientation })
|
|
#
|
|
# CancelButton
|
|
#
|
|
$CancelButton.Location = New-Object System.Drawing.Point(101, 429)
|
|
$CancelButton.Name = 'CancelButton'
|
|
$CancelButton.Text = $CancelButtonString
|
|
$CancelButton.Size = New-Object System.Drawing.Size(83, 35)
|
|
$CancelButton.TabIndex = 5
|
|
$CancelButton.UseVisualStyleBackColor = $True
|
|
$CancelButton.Add_Click({
|
|
$global:NeedReset = $true
|
|
$MainForm.Close()
|
|
})
|
|
#
|
|
# BrowseButton
|
|
#
|
|
$BrowseButton.Location = New-Object System.Drawing.Point(504, 390)
|
|
$BrowseButton.Name = 'BrowseButton'
|
|
$BrowseButton.Text = $BrowseButtonString
|
|
$BrowseButton.Size = New-Object System.Drawing.Size(83, 29)
|
|
$BrowseButton.TabIndex = 5
|
|
$BrowseButton.UseVisualStyleBackColor = $True
|
|
$BrowseButton.add_Click({
|
|
if ($folderbrowserdialog.ShowDialog() -eq 'OK')
|
|
{
|
|
$DownPath = $folderbrowserdialog.SelectedPath.ToString()
|
|
$DownPathButton.Text = $DownPath
|
|
$sync.DownloadPath = $DownPath
|
|
}
|
|
})
|
|
#
|
|
# StartButton
|
|
#
|
|
|
|
$StartButton.Location = New-Object System.Drawing.Point(12, 429)
|
|
$StartButton.Name = 'StartButton'
|
|
$StartButton.Text = $StartButtonString
|
|
$StartButton.Size = New-Object System.Drawing.Size(83, 35)
|
|
$StartButton.TabIndex = 5
|
|
$StartButton.UseVisualStyleBackColor = $True
|
|
$StartButton.Add_Click($counter)
|
|
|
|
Show-Info
|
|
|
|
# Activate the form
|
|
$MainForm.Add_Shown({ $MainForm.Activate() })
|
|
[void]$MainForm.ShowDialog()
|
|
}
|