Skip to content

Commit 8b8dd7b

Browse files
committed
v4.90.8
-block program win update
1 parent b880dba commit 8b8dd7b

File tree

3 files changed

+37
-19
lines changed

3 files changed

+37
-19
lines changed

.Source/GTweak/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
[assembly: AssemblyCopyright("Copyright © Greedeks 2024")]
1111
[assembly: AssemblyTrademark("Greedeks")]
1212
[assembly: AssemblyCulture("")]
13-
[assembly: AssemblyInformationalVersion("Build: 4.90.7")]
14-
[assembly: AssemblyFileVersion("4.90.7")]
13+
[assembly: AssemblyInformationalVersion("Build: 4.90.8")]
14+
[assembly: AssemblyFileVersion("4.90.8")]
1515

1616
[assembly: ComVisible(false)]
1717

.Source/GTweak/Utilities/Tweaks/ServicesTweaks.cs

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using GTweak.View;
33
using Microsoft.Win32;
44
using System;
5+
using System.Collections.Generic;
56
using System.ComponentModel;
67
using System.Diagnostics;
78
using System.IO;
@@ -13,7 +14,14 @@ namespace GTweak.Utilities.Tweaks
1314
{
1415
internal sealed class ServicesTweaks : Firewall
1516
{
16-
private static readonly string filesPathUpdate = Settings.PathSystemDisk + "Windows\\System32\\Tasks\\Microsoft\\Windows";
17+
private static readonly SortedList<string, string> WinUpdatePaths = new SortedList<string, string>
18+
{
19+
["MoUso_New"] = string.Concat(Settings.PathSystemDisk, @"Windows\UUS\amd64\MoUsoCoreWorker.exe"),
20+
["MoUso_Old"] = string.Concat(Settings.PathSystemDisk, @"Windows\System32\MoUsoCoreWorker.exe"),
21+
["UpdateFolder"] = string.Concat(Settings.PathSystemDisk, @"Windows\System32\Tasks\Microsoft\Windows"),
22+
["RenMoUso_New"] = string.Concat(Settings.PathSystemDisk, @"Windows\UUS\amd64\BlockUpdate-GTweak.exe"),
23+
["RenMoUso_Old"] = string.Concat(Settings.PathSystemDisk, @"Windows\System32\BlockUpdate-GTweak.exe")
24+
};
1725

1826
internal void ViewServices(ServicesView servicesV)
1927
{
@@ -209,12 +217,12 @@ internal void ViewServices(ServicesView servicesV)
209217
Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DoSvc", "Start", null) == null ||
210218
Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DoSvc", "Start", string.Empty).ToString() != "4" ||
211219
Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc", "Start", null) == null ||
212-
Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc", "Start", string.Empty).ToString() != "4")
220+
Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc", "Start", string.Empty).ToString() != "4" ||
221+
!File.Exists(WinUpdatePaths["RenMoUso_New"]) & !File.Exists(WinUpdatePaths["RenMoUso_Old"]))
213222
servicesV.TglButton15.StateNA = true;
214223
else
215224
servicesV.TglButton15.StateNA = false;
216225

217-
218226
if (Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent", "Start", null) == null ||
219227
Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent", "Start", string.Empty).ToString() != "4" ||
220228
Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IKEEXT", "Start", null) == null ||
@@ -598,6 +606,16 @@ static void StoreServices(bool isChoose)
598606
break;
599607
case "TglButton15":
600608
BlockWindowsUpdate(isChoose);
609+
610+
string renameMoUsoNew = isChoose ? "rename " + WinUpdatePaths["MoUso_New"] + " BlockUpdate-GTweak.exe" : "rename " + WinUpdatePaths["RenMoUso_New"] + " MoUsoCoreWorker.exe";
611+
string renameMoUsoOld = isChoose ? "rename " + WinUpdatePaths["MoUso_Old"] + " BlockUpdate-GTweak.exe" : "rename " + WinUpdatePaths["RenMoUso_Old"] + " MoUsoCoreWorker.exe";
612+
613+
using (BackgroundWorker backgroundWorker = new BackgroundWorker())
614+
{
615+
backgroundWorker.DoWork += delegate { TrustedInstaller.CreateProcessAsTrustedInstaller(Settings.PID, $"cmd.exe /c {renameMoUsoNew} & {renameMoUsoOld}"); };
616+
backgroundWorker.RunWorkerAsync();
617+
}
618+
601619
if (isChoose)
602620
{
603621
RegistryHelp.Write(Registry.LocalMachine, @"SYSTEM\CurrentControlSet\Services\wisvc", "Start", 4, RegistryValueKind.DWord);
@@ -626,7 +644,7 @@ static void StoreServices(bool isChoose)
626644
}
627645
using (BackgroundWorker backgroundWorker = new BackgroundWorker())
628646
{
629-
backgroundWorker.DoWork += (s, e) => { ChangeAccessUpdateFolder(isChoose); };
647+
backgroundWorker.DoWork += delegate { ChangeAccessUpdateFolders(isChoose); };
630648
backgroundWorker.RunWorkerAsync();
631649
}
632650
break;
@@ -828,7 +846,7 @@ static void StoreServices(bool isChoose)
828846
}
829847
}
830848

831-
private async static void ChangeAccessUpdateFolder(bool isDenyAccess)
849+
private async static void ChangeAccessUpdateFolders(bool isDenyAccess)
832850
{
833851
void SetFullAccess(string path)
834852
{
@@ -852,7 +870,7 @@ void ChangeStateTask()
852870
"schtasks /change " + valueState + " /tn \"\\Microsoft\\Windows\\UpdateOrchestrator\\USO_UxBroker\" & " +
853871
"schtasks /change " + valueState + " /tn \"\\Microsoft\\Windows\\UpdateOrchestrator\\UUS Failover Task\" & " +
854872
"schtasks /change " + valueState + " /tn \"\\Microsoft\\Windows\\WindowsUpdate\\Refresh Group Policy Cache\" & " +
855-
"schtasks /change " + valueState + " /tn \"\\Microsoft\\Windows\\WindowsUpdate\\Scheduled Start\" ");
873+
"schtasks /change " + valueState + " /tn \"\\Microsoft\\Windows\\WindowsUpdate\\Scheduled Start\"");
856874
}
857875

858876
try
@@ -873,12 +891,13 @@ void ChangeStateTask()
873891

874892
ChangeStateTask();
875893

894+
876895
await Task.Delay(1000);
877896

878897
Process.Start(new ProcessStartInfo()
879898
{
880-
Arguments = @"/c rd /s /q " + filesPathUpdate + "/(GTweak UpdateOrchestrator) & " +
881-
"rd /s /q " + filesPathUpdate + "/(GTweak WindowsUpdate)",
899+
Arguments = @"/c rd /s /q " + WinUpdatePaths["UpdateFolder"] + "/(GTweak UpdateOrchestrator) & " +
900+
"rd /s /q " + WinUpdatePaths["UpdateFolder"] + "/(GTweak WindowsUpdate)",
882901
WindowStyle = ProcessWindowStyle.Hidden,
883902
CreateNoWindow = true,
884903
FileName = "cmd.exe"
@@ -887,18 +906,18 @@ void ChangeStateTask()
887906

888907
await Task.Delay(200);
889908

890-
if (Directory.Exists(filesPathUpdate + "\\UpdateOrchestrator"))
891-
Directory.Move(filesPathUpdate + "\\UpdateOrchestrator", filesPathUpdate + "\\(GTweak UpdateOrchestrator)");
892-
if (Directory.Exists(filesPathUpdate + "\\WindowsUpdate"))
893-
Directory.Move(filesPathUpdate + "\\WindowsUpdate", filesPathUpdate + "\\(GTweak WindowsUpdate)");
909+
if (Directory.Exists(WinUpdatePaths["UpdateFolder"] + "\\UpdateOrchestrator"))
910+
Directory.Move(WinUpdatePaths["UpdateFolder"] + "\\UpdateOrchestrator", WinUpdatePaths["UpdateFolder"] + "\\(GTweak UpdateOrchestrator)");
911+
if (Directory.Exists(WinUpdatePaths["UpdateFolder"] + "\\WindowsUpdate"))
912+
Directory.Move(WinUpdatePaths["UpdateFolder"] + "\\WindowsUpdate", WinUpdatePaths["UpdateFolder"] + "\\(GTweak WindowsUpdate)");
894913
}
895914
else
896915
{
897916

898-
if (Directory.Exists(filesPathUpdate + "\\(GTweak UpdateOrchestrator)"))
899-
Directory.Move(filesPathUpdate + "\\(GTweak UpdateOrchestrator)", filesPathUpdate + "\\UpdateOrchestrator");
900-
if (Directory.Exists(filesPathUpdate + "\\(GTweak WindowsUpdate)"))
901-
Directory.Move(filesPathUpdate + "\\(GTweak WindowsUpdate)", filesPathUpdate + "\\WindowsUpdate");
917+
if (Directory.Exists(WinUpdatePaths["UpdateFolder"] + "\\(GTweak UpdateOrchestrator)"))
918+
Directory.Move(WinUpdatePaths["UpdateFolder"] + "\\(GTweak UpdateOrchestrator)", WinUpdatePaths["UpdateFolder"] + "\\UpdateOrchestrator");
919+
if (Directory.Exists(WinUpdatePaths["UpdateFolder"] + "\\(GTweak WindowsUpdate)"))
920+
Directory.Move(WinUpdatePaths["UpdateFolder"] + "\\(GTweak WindowsUpdate)", WinUpdatePaths["UpdateFolder"] + "\\WindowsUpdate");
902921

903922
await Task.Delay(500);
904923

.Source/GTweak/Windows/UpdateWindow.xaml.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using System.Diagnostics;
66
using System.Net;
77
using System.Reflection;
8-
using System.Threading.Tasks;
98
using System.Windows;
109
using System.Windows.Input;
1110
using System.Windows.Media.Animation;

0 commit comments

Comments
 (0)