diff --git a/Langs/0000.lang b/Langs/0000.lang index 39d7273d..1521ceb4 100644 --- a/Langs/0000.lang +++ b/Langs/0000.lang @@ -10,15 +10,16 @@ Medium=10 Small=8.5 Name=Arial [Strings] -Enable enhanced accessibility?= -This new Enhanced Accessibility functionality is designed for the visually impaired, in which most of the program interface can be used by voice and keyboard shortcuts. Activate?= Donate= +My Projects= +I'm For Hire= Settings= Check for Updates= Your Windows 11 Compatibility Results Are Below= +Your Feature Update Compatibility Results Are Below= Now Reach WhyNotWin11 via https://www.whynotwin11.org/= -Results based on currently known requirements!= Language= +Info= Theme= Translation by= Theme by= @@ -27,7 +28,7 @@ Boot Method= CPU Compatibility= CPU Core Count= CPU Frequency= -DirectX + WDDM2= +DirectX 12 and WDDM 2= Disk Partition Type= RAM Installed= Secure Boot= @@ -38,28 +39,19 @@ Checking...= 64 Bit OS= 32 Bit CPU= 32 Bit OS= -Unable to Determine= Unable to Check List= Error Accessing List= Check Timed Out= Check Skipped= -Not Currently Listed as Compatible= Listed as Compatible= -Cores= -Threads= GPT Detected= GPT Not Detected= Enabled= Supported= -Not Supported= +TPM Status Error= Disabled / Not Detected= -Drive(s) Meet Requirements= -0 Drives Meet Requirements= -TPM Missing / Disabled= Detected= -May Report DirectX 12 Incorrectly= DirectX 12 and WDDM 3= -DirectX 12 and WDDM 2= No DirectX 12, but WDDM2= DirectX 12, but no WDDM2= No DirectX 12 or WDDM2= @@ -79,7 +71,9 @@ Done= Loading WMIC= Warning= Your Computer is NOT ready for Windows 11, you can join the Discord using the Discord Icon if you need assistance.= -Your Computer is ready for Windows 11. You should receive the option to upgrade between October 5th 2021 and Fall 2022.= +Your Computer is ready for Windows 11 and its updates.= +Your Computer is ready for Windows 11 and its updates, but Windows Update may think you are not for 30 days. You can fix this using the Windows Installation Assistant.= +Your Computer is already on Windows 11. Would you like to check Feature Update Compatiblity instead?= Language Switcher currently disabled with Group Policy= Theme Switcher currently disabled with Group Policy.= Default - No Theme Files Found= @@ -90,6 +84,11 @@ Enable TPM= Enable Secure Boot= Skip CPU && TPM= Get Windows 11 Now= +Cores=# Cores +Threads=# Threads +Not Supported=# Not Supported +May Report DirectX 12 Incorrectly=# May Report DirectX12 Incorrectly +Drive(s) Meet Requirements=# Drive(s) Meet Requirements [Descriptions] Architecture=The amount of data your CPU and OS can process at once. 32-Bit OS result requires a disk wipe and new Windows 11 install. 32-Bit CPU requires a CPU replacement. Boot=A method your motherboard uses to load Windows. Legacy results can be fixed on newer motherboards in your BIOS/UEFI settings. Refer to your motherboard manual. diff --git a/Langs/0409.lang b/Langs/0409.lang index f36366d5..d202799b 100644 --- a/Langs/0409.lang +++ b/Langs/0409.lang @@ -2,7 +2,7 @@ Language=English - United States RTL=false Translator=rcmaehl, htcfreek -Version=2.4.2.1 +Version=2.6.0.0 [Font] Extra Large=24 Large=18 @@ -11,18 +11,24 @@ Small=8.5 Name=Arial [Strings] Donate=Donate +My Projects=My Projects +I'm For Hire=I'm For Hire Settings=Settings Check for Updates=Check for Updates Your Windows 11 Compatibility Results Are Below=Your Windows 11 Compatibility Results Are Below +Your Feature Update Compatibility Results Are Below=Your Feature Update Compatibility Results Are Below Now Reach WhyNotWin11 via https://www.whynotwin11.org/=Now Reach WhyNotWin11 via https://www.whynotwin11.org/ -Results based on currently known requirements!=Results based on currently known requirements! +Language=Language +Info=Info +Theme=Theme Translation by=Translation by +Theme by=Theme by Architecture=Architecture Boot Method=Boot Method CPU Compatibility=CPU Compatibility CPU Core Count=CPU Core Count CPU Frequency=CPU Frequency -DirectX + WDDM2=DirectX + WDDM2 +DirectX 12 and WDDM 2=DirectX 12 and WDDM 2 Disk Partition Type=Disk Partition Type RAM Installed=RAM Installed Secure Boot=Secure Boot @@ -33,26 +39,19 @@ Checking...=Checking... 64 Bit OS=64 Bit OS 32 Bit CPU=32 Bit CPU 32 Bit OS=32 Bit OS -Unable to Determine=Unable to Determine Unable to Check List=Unable to Check List Error Accessing List=Error Accessing List Check Timed Out=Check Timed Out Check Skipped=Check Skipped -Not Currently Listed as Compatible=Not Currently Listed as Compatible Listed as Compatible=Listed as Compatible -Cores=# Cores -Threads=# Threads GPT Detected=GPT Detected GPT Not Detected=GPT Not Detected Enabled=Enabled Supported=Supported +TPM Status Error=TPM Status Error Disabled / Not Detected=Disabled / Not Detected -Drive(s) Meet Requirements=Drive(s) Meet Requirements -TPM Missing / Disabled=TPM Missing / Disabled -Not Supported=Not Supported Detected=Detected DirectX 12 and WDDM 3=DirectX 12 and WDDM 3 -DirectX 12 and WDDM 2=DirectX 12 and WDDM 2 No DirectX 12, but WDDM2=No DirectX 12, but WDDM2 DirectX 12, but no WDDM2=DirectX 12, but no WDDM2 No DirectX 12 or WDDM2=No DirectX 12 or WDDM2 @@ -72,7 +71,24 @@ Done=Done Loading WMIC=Loading WMIC Warning=Warning Your Computer is NOT ready for Windows 11, you can join the Discord using the Discord Icon if you need assistance.=Your Computer is NOT ready for Windows 11, you can join the Discord using the Discord Icon if you need assistance. -Your Computer is ready for Windows 11. You should receive the option to upgrade between October 5th 2021 and Fall 2022.=Your Computer is ready for Windows 11. You should receive the option to upgrade between October 5th 2021 and Fall 2022. +Your Computer is ready for Windows 11 and its updates.=Your Computer is ready for Windows 11 and its updates. +Your Computer is ready for Windows 11 and its updates, but Windows Update may think you are not for 30 days. You can fix this using the Windows Installation Assistant.=Your Computer is ready for Windows 11 and its updates, but Windows Update may think you are not for 30 days. You can fix this using the Windows Installation Assistant. +Your Computer is already on Windows 11. Would you like to check Feature Update Compatiblity instead?=Your computer is already on Windows 11. Would you like to check Feature Update Compatiblity instead? +Language Switcher currently disabled with Group Policy=Language Switcher currently disabled with Group Policy +Theme Switcher currently disabled with Group Policy.=Theme Switcher currently disabled with Group Policy. +Default - No Theme Files Found=Default - No Theme Files Found +Guides=Guides +Windows 11 Requirements=Windows 11 Requirements +Convert Disk to GPT=Convert Disk to GPT +Enable TPM=Enable TPM +Enable Secure Boot=Enable Secure Boot +Skip CPU && TPM=Skip CPU && TPM +Get Windows 11 Now=Get Windows 11 Now +Cores=# Cores +Threads=# Threads +Not Supported=# Not Supported +May Report DirectX 12 Incorrectly=# May Report DirectX12 Incorrectly +Drive(s) Meet Requirements=# Drive(s) Meet Requirements [Descriptions] Architecture=The amount of data your CPU and OS can process at once. 32-Bit OS result requires a disk wipe and new Windows 11 install. 32-Bit CPU requires a CPU replacement. Boot=A method your motherboard uses to load Windows. Legacy results can be fixed on newer motherboards in your BIOS/UEFI settings. Refer to your motherboard manual. @@ -81,7 +97,7 @@ CPU Cores=The number of tasks your CPU can process at once. Requires physical re CPU Speed=The rate that your CPU processes tasks. Requires physical replacement on Desktops; Not replaceable on Laptops. DirectX=The version of DirectX DDI/Feature Level your card supports. This is separate from DirectX software version. 'DirectX 12 API' cards may fail this check. Disk Type=The format that your data is stored on your Disk. Non-GPT results can be fixed using Microsoft's MBR2GPT tool. -RAM=The amount of fast memory installed in your computer. Physically upgradeable in Desktops; Physically upgradeable in high end Laptops. +RAM=The amount of fast memory installed in your computer. Physically upgradeable in Desktops; Uncertain on Laptops. Check if your laptop's model number can be upgraded. Secure Boot=A method your motherboard uses to load Windows. If not detected, can be fixed on newer motherboards in your BIOS/UEFI settings. Refer to your motherboard manual. -Storage=The amount of space for data on your disk. Physically upgradeable in high end Laptops. -TPM=A security module used by Windows. All modern AMD CPUs contain one; Some modern Intel CPUs contain one. Check your BIOS/UEFI settings. Refer to your motherboard manual. +Storage=The amount of space for data on your disk. Physically upgradeable on Desktops; Uncertain on Laptops. Check if your laptop's model number can be upgraded. +TPM=A security module used by Windows. All modern AMD CPUs contain one; Some modern Intel CPUs contain one. Check your BIOS/UEFI settings. Refer to your motherboard manual. \ No newline at end of file diff --git a/WhyNotWin11.au3 b/WhyNotWin11.au3 index a569ce3f..43a201ff 100644 --- a/WhyNotWin11.au3 +++ b/WhyNotWin11.au3 @@ -7,9 +7,9 @@ #AutoIt3Wrapper_Res_Comment=https://www.whynotwin11.org #AutoIt3Wrapper_Res_CompanyName=Robert Maehl Software #AutoIt3Wrapper_Res_Description=Detection Script to help identify why your PC isn't Windows 11 Release Ready. Now Supporting Update Checks! -#AutoIt3Wrapper_Res_Fileversion=2.6.0.0 +#AutoIt3Wrapper_Res_Fileversion=2.6.1.0 #AutoIt3Wrapper_Res_ProductName=WhyNotWin11 -#AutoIt3Wrapper_Res_ProductVersion=2.6.0.0 +#AutoIt3Wrapper_Res_ProductVersion=2.6.1.0 #AutoIt3Wrapper_Res_LegalCopyright=Robert Maehl, using LGPL 3 License #AutoIt3Wrapper_Res_Language=1033 #AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker @@ -90,6 +90,9 @@ Func ProcessCMDLine() Local $aResults Local $aExtended + Local $aTemp + Local $aSkips[11] = [False, False, False, False, False, False, False, False, False, False, False] + Local $bFUC = False Local $sDrive = Null Local $bForce = False Local $bSilent = False @@ -123,15 +126,17 @@ Func ProcessCMDLine() MsgBox(0, "Help and Flags", _ "Checks PC for Windows 11 Release Compatibility" & @CRLF & _ @CRLF & _ - "WhyNotWin11 [/export FORMAT FILENAME [/silent]][/drive DRIVE:][/force][/update [branch]]" & @CRLF & _ + "WhyNotWin11 [/export FORMAT FILENAME] [/drive DRIVE:] [/force] [/fuonly] [/silent] [/skip [check]] [/update [branch]]" & @CRLF & _ @CRLF & _ @TAB & "/export" & @TAB & "Export Results in an Available format, can be used" & @CRLF & _ @TAB & " " & @TAB & "without the /silent flag for both GUI and file" & @CRLF & _ @TAB & " " & @TAB & "output. Requires a filename if used." & @CRLF & _ @TAB & "formats" & @TAB & "TXT, CSV" & @CRLF & _ @TAB & "/force " & @TAB & "Ignores program system requirements (e.g. WinPE)" & @CRLF & _ + @TAB & "/fuonly" & @TAB & "Checks Win11 Feature Update compatibility" & @CRLF & _ @TAB & "/silent" & @TAB & "Don't Display the GUI. Compatible Systems will Exit" & @CRLF & _ @TAB & " " & @TAB & "with ERROR_SUCCESS." & @CRLF & _ + @TAB & "/skip " & @TAB & "Skips a Comma Separated List of Checks (see Wiki)" & @CRLF & _ @TAB & "/update" & @TAB & "Downloads the latest RELEASE (default) or DEV build" & @CRLF & _ @CRLF & _ "Refer to https://WhyNotWin11.org/wiki/Command-Line-Switches for more details" & @CRLF) @@ -172,11 +177,65 @@ Func ProcessCMDLine() Case "/f", "/force" $bForce = True _ArrayDelete($CmdLine, 1) + Case "/fu", "/fuonly" + $bFUC = True + _ArrayDelete($CmdLine, 1) Case "/s", "/silent" $bSilent = True _ArrayDelete($CmdLine, 1) - Case "/sc", "/skipcheck" - _ArrayDelete($CmdLine, 1) + Case "/sc", "/skip" + Select + Case UBound($CmdLine) <= 2 + MsgBox(0, "Invalid", "Missing FORMAT parameter for /format." & @CRLF) + Exit 87 ; ERROR_INVALID_PARAMETER + Case Else + $aTemp = StringSplit($CmdLine[2], ",", $STR_NOCOUNT) + For $iLoop = 0 To UBound($aTemp) - 1 + Switch $aTemp[$iLoop] + Case "Arch" + $aSkips[0] = True + Case "Boot" + $aSkips[1] = True + Case "Config" + $aSkips[1] = True + $aSkips[6] = True + $aSkips[8] = True + Case "CPU" + $aSkips[2] = True + $aSkips[3] = True + $aSkips[4] = True + Case "CPUCompat" + $aSkips[2] = True + Case "CPUCores" + $aSkips[3] = True + Case "CPUFreq" + $aSkips[4] = True + Case "DirectX" + $aSkips[5] = True + Case "Disk" + $aSkips[6] = True + Case "Hardware" + $aSkips[0] = True + $aSkips[2] = True + $aSkips[3] = True + $aSkips[4] = True + $aSkips[5] = True + $aSkips[7] = True + Case "RAM" + $aSkips[7] = True + Case "SecureBoot" + $aSkips[8] = True + Case "Storage" + $aSkips[9] = True + Case "TPM" + $aSkips[10] = True + Case Else + MsgBox(0, "Invalid", "Invalid CHECK parameter for /skip." & @CRLF) + Exit 87 ; ERROR_INVALID_PARAMETER + EndSwitch + Next + _ArrayDelete($CmdLine, "1-2") + EndSelect Case "/u", "/update" Select Case UBound($CmdLine) = 2 @@ -211,16 +270,24 @@ Func ProcessCMDLine() If $bSilent Then Exit 10 ; ERROR_BAD_ENVIRONMENT Else - MsgBox($MB_ICONWARNING, _Translate(@MUILang, "Not Supported"), @OSVersion & " " & _Translate(@MUILang, "Not Supported")) + MsgBox($MB_ICONWARNING, StringReplace(_Translate($aMUI[1], "Not Supported"), "#", ""), StringReplace(_Translate($aMUI[1], "Not Supported"), "#", @OSVersion)) EndIf Case "WIN_8", "WIN_8.1" If $bSilent Then Exit 10 ; ERROR_BAD_ENVIRONMENT Else - MsgBox($MB_ICONWARNING, _Translate(@MUILang, "Warning"), StringReplace(_Translate(@MUILang, "May Report DirectX 12 Incorrectly"), '#', @OSVersion)) + MsgBox($MB_ICONWARNING, _Translate($aMUI[1], "Warning"), StringReplace(_Translate($aMUI[1], "May Report DirectX 12 Incorrectly"), "#", @OSVersion)) EndIf Case "WIN_11" - ;;; + If $bSilent Then + ;;; ; Anyone using silent for WNW11 on Win11 can use /fuonly + Else + If MsgBox($MB_ICONQUESTION+$MB_YESNO, _Translate($aMUI[1], "Up to Date"), _Translate($aMUI[1], "Your computer is already on Windows 11. Would you like to check Feature Update Compatiblity instead?")) = $IDYES Then + $bFUC = True + Else + $bFUC = False + EndIf + EndIf Case Else ;;; EndSwitch @@ -229,7 +296,7 @@ Func ProcessCMDLine() If $bSilent Then Exit 10 ; ERROR_BAD_ENVIRONMENT Else - MsgBox($MB_ICONWARNING, _Translate(@MUILang, "Not Supported"), _Translate(@MUILang, "You're running the latest build!")) + MsgBox($MB_ICONWARNING, StringReplace(_Translate($aMUI[1], "Not Supported"), "#", ""), StringReplace(_Translate($aMUI[1], "Not Supported"), "#", "WINE")) EndIf EndIf @@ -246,7 +313,7 @@ Func ProcessCMDLine() If Not $bSilent And Not RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Robert Maehl Software\WhyNotWin11", "NoProgress") Then ProgressOn($aName[1], _Translate(@MUILang, "Loading WMIC")) $aResults = RunChecks($sDrive) - $aExtended = RunExtendedChecks($sDrive) + $aExtended = RunExtendedChecks($sDrive, $bFUC) ProgressSet(80, "Done") @@ -264,13 +331,13 @@ Func ProcessCMDLine() $aColors = _SetTheme() $aFonts = _GetTranslationFonts($aMUI[1]) - Main($aResults, $aExtended, $aOutput) + Main($aResults, $aExtended, $aSkips, $aOutput, $bFUC) Else Do FinalizeResults($aResults) Until Not IsArray($aResults[5][0]) EndIf - If $aOutput[0] = True Then OutputResults($aResults, $aOutput) + If $aOutput[0] = True Then OutputResults($aResults, $aSkips, $aOutput) For $iLoop = 0 To 10 Step 1 If $aResults[$iLoop][0] = False Or $aResults[$iLoop][0] < 1 Then Exit 1 Next @@ -331,24 +398,34 @@ Func RunChecks($sDrive = Null) EndFunc ;==>RunChecks -Func RunExtendedChecks($sDrive = Null) +Func RunExtendedChecks($sDrive = Null, $bFUC = False) Local $sTemp Local $aResults[11][3] - Local $sFeatureUpdate - - For $iLoop = 1 To 10 Step 1 - $sTemp = RegEnumKey("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TargetVersionUpgradeExperienceIndicators", $iLoop) - If @error Then ExitLoop - If StringRegExp($sTemp, ".*\d\d[Hh]\d") Then - If StringRegExpReplace($sTemp, "\D", "") > StringRegExpReplace($sFeatureUpdate, "\D", "") Then $sFeatureUpdate = $sTemp - EndIf - Next + Local $sFeatureUpdate = False + + If @OSVersion = "WIN_11" and $bFUC Then + For $iLoop = 1 To 10 Step 1 + $sTemp = RegEnumKey("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TargetVersionUpgradeExperienceIndicators", $iLoop) + If @error Then ExitLoop + If StringRegExp($sTemp, ".*\d\d[Hh]\d") Then + If StringRegExpReplace($sTemp, "\D", "") > StringRegExpReplace($sFeatureUpdate, "\D", "") Then $sFeatureUpdate = $sTemp + EndIf + Next + EndIf $aResults[2][0] = _CPUNameCheck(_GetCPUInfo(2), _GetCPUInfo(6), _GetCPUInfo(5), $sFeatureUpdate) $aResults[2][1] = @error $aResults[2][2] = @extended + $aResults[3][0] = _CPUCoresCheck(_GetCPUInfo(0), _GetCPUInfo(1), $sFeatureUpdate) + $aResults[3][1] = @error + $aResults[3][2] = @extended + + $aResults[4][0] = _CPUSpeedCheck($sFeatureUpdate) + $aResults[4][1] = @error + $aResults[4][2] = @extended + $aResults[7][0] = _MemCheck($sFeatureUpdate) $aResults[7][1] = @error $aResults[7][2] = @extended @@ -388,7 +465,7 @@ Func RunCheckValidation($aInitial, $aExtended) EndFunc -Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) +Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aSkips, ByRef $aOutput, $bFUC = False) ; Disable Scaling If @OSVersion = 'WIN_10' Or 'WIN_11' Then DllCall(@SystemDir & "\User32.dll", "bool", "SetProcessDpiAwarenessContext", "HWND", "DPI_AWARENESS_CONTEXT" - 1) @@ -470,12 +547,12 @@ Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) GUICtrlSetCursor(-1, 0) $hWeb = GUICtrlCreateLabel("", 34, 260, 32, 32) - GUICtrlSetTip(-1, "My Projects") + GUICtrlSetTip(-1, _Translate($aMUI[1], "My Projects")) GUICtrlSetCursor(-1, 0) If @LogonDomain <> @ComputerName Then $hJob = GUICtrlCreateLabel("", 34, 310, 32, 32) - GUICtrlSetTip(-1, "I'm For Hire") + GUICtrlSetTip(-1, _Translate($aMUI[1], "I'm For Hire")) GUICtrlSetCursor(-1, 0) EndIf EndIf @@ -589,14 +666,19 @@ Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) GUICtrlSetBkColor(-1, $aColors[$iFooter]) GUICtrlCreateLabel(_GetMotherboardInfo(0) & " " & _GetMotherboardInfo(1) & " @ " & _GetBIOSInfo(0), 113, 580, 300, 20, $SS_CENTERIMAGE) GUICtrlSetBkColor(-1, $aColors[$iFooter]) - GUICtrlCreateLabel(_GetCPUInfo(2), 450, 560, 300, 20, $SS_CENTERIMAGE) + GUICtrlCreateLabel(StringReplace(_GetCPUInfo(2), " CPU", ""), 450, 560, 300, 20, $SS_CENTERIMAGE) GUICtrlSetBkColor(-1, $aColors[$iFooter]) GUICtrlCreateLabel(_GetGPUInfo(0), 450, 580, 300, 20, $SS_CENTERIMAGE) GUICtrlSetBkColor(-1, $aColors[$iFooter]) #EndRegion #Region Header - Local $hHeader = GUICtrlCreateLabel(_Translate($aMUI[1], "Your Windows 11 Compatibility Results Are Below"), 130, 10, 640, 40, $SS_CENTER + $SS_CENTERIMAGE) + Local $hHeader + If $bFUC Then + $hHeader = GUICtrlCreateLabel(_Translate($aMUI[1], "Your Feature Update Compatibility Results Are Below"), 130, 10, 640, 40, $SS_CENTER + $SS_CENTERIMAGE) + Else + $hHeader = GUICtrlCreateLabel(_Translate($aMUI[1], "Your Windows 11 Compatibility Results Are Below"), 130, 10, 640, 40, $SS_CENTER + $SS_CENTERIMAGE) + EndIf GUICtrlSetFont(-1, $aFonts[$FontLarge] * $DPI_RATIO, $FW_SEMIBOLD, "", "", $CLEARTYPE_QUALITY) #cs @@ -625,10 +707,11 @@ Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) Local $bInfoBox = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Robert Maehl Software\WhyNotWin11", "NoInfoBox") Local $hCheck[11][3] - Local $hLabel[11] = ["Architecture", "Boot Method", "CPU Compatibility", "CPU Core Count", "CPU Frequency", "DirectX + WDDM2", "Disk Partition Type", "RAM Installed", "Secure Boot", "Storage Available", "TPM Version"] + Local $hLabel[11] = ["Architecture", "Boot Method", "CPU Compatibility", "CPU Core Count", "CPU Frequency", "DirectX 12 and WDDM 2", "Disk Partition Type", "RAM Installed", "Secure Boot", "Storage Available", "TPM Version"] Local $aInfo = _GetDescriptions($aMUI[1]) _GDIPlus_Startup() + For $iRow = 0 To 10 Step 1 $hCheck[$iRow][0] = GUICtrlCreateLabel("…", 113, 70 + $iRow * 44, 40, 40, $SS_CENTER + $SS_SUNKEN + $SS_CENTERIMAGE) GUICtrlSetBkColor(-1, $aColors[$iBackground]) @@ -656,167 +739,227 @@ Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) _GDIPlus_Shutdown() #Region ; ArchCheck() - Switch $aResults[0][0] - Case True - _GUICtrlSetState($hCheck[0][0], $iPass) - GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "64 Bit CPU") & @CRLF & _Translate($aMUI[1], "64 Bit OS")) - Case Else - Switch $aResults[0][1] - Case 0 - _GUICtrlSetState($hCheck[0][0], $iUnsure) - GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "Check Skipped")) - Case 1 - _GUICtrlSetState($hCheck[0][0], $iWarn) - GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "64 Bit CPU") & @CRLF & _Translate($aMUI[1], "32 Bit OS")) - Case 2 - _GUICtrlSetState($hCheck[0][0], $iFail) - GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "32 Bit CPU") & @CRLF & _Translate($aMUI[1], "32 Bit OS")) - Case Else - _GUICtrlSetState($hCheck[0][0], $iFail) - GUICtrlSetData($hCheck[0][2], "?") - EndSwitch - EndSwitch + If $aSkips[0] Then + _GUICtrlSetState($hCheck[0][0], $iUnsure) + GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "Check Skipped")) + Else + Switch $aResults[0][0] + Case True + _GUICtrlSetState($hCheck[0][0], $iPass) + GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "64 Bit CPU") & @CRLF & _Translate($aMUI[1], "64 Bit OS")) + Case Else + Switch $aResults[0][1] + Case 0 + _GUICtrlSetState($hCheck[0][0], $iUnsure) + GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "Check Skipped")) + Case 1 + _GUICtrlSetState($hCheck[0][0], $iWarn) + GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "64 Bit CPU") & @CRLF & _Translate($aMUI[1], "32 Bit OS")) + Case 2 + _GUICtrlSetState($hCheck[0][0], $iFail) + GUICtrlSetData($hCheck[0][2], _Translate($aMUI[1], "32 Bit CPU") & @CRLF & _Translate($aMUI[1], "32 Bit OS")) + Case Else + _GUICtrlSetState($hCheck[0][0], $iFail) + GUICtrlSetData($hCheck[0][2], "?") + EndSwitch + EndSwitch + EndIf #EndRegion #Region ; _BootCheck() - Switch $aResults[1][0] - Case True - _GUICtrlSetState($hCheck[1][0], $iPass) - GUICtrlSetData($hCheck[1][2], "UEFI") - Case False - Switch $aResults[1][1] - Case 0 - _GUICtrlSetState($hCheck[1][0], $iFail) - GUICtrlSetData($hCheck[1][2], "Legacy") - Case Else - GUICtrlSetData($hCheck[1][2], _Translate($aMUI[1], "Not Supported")) - _GUICtrlSetState($hCheck[1][0], $iWarn) - EndSwitch - EndSwitch - #EndRegion - - #Region ; _CPUNameCheck() - If $aResults[2][0] Then - _GUICtrlSetState($hCheck[2][0], $iPass) - GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Listed as Compatible")) + If $aSkips[1] Then + _GUICtrlSetState($hCheck[1][0], $iUnsure) + GUICtrlSetData($hCheck[1][2], _Translate($aMUI[1], "Check Skipped")) Else - Switch $aResults[2][0] + Switch $aResults[1][0] + Case True + _GUICtrlSetState($hCheck[1][0], $iPass) + GUICtrlSetData($hCheck[1][2], "UEFI") Case False - Switch $aResults[2][1] - Case 1 - _GUICtrlSetState($hCheck[2][0], $iWarn) - GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Unable to Check List")) - Case 2 - _GUICtrlSetState($hCheck[2][0], $iWarn) - GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Error Accessing List")) - Case 3 - _GUICtrlSetState($hCheck[2][0], $iFail) - GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Not Supported")) + Switch $aResults[1][1] + Case 0 + _GUICtrlSetState($hCheck[1][0], $iFail) + GUICtrlSetData($hCheck[1][2], "Legacy") + Case Else + GUICtrlSetData($hCheck[1][2], StringReplace(_Translate($aMUI[1], "Not Supported"), "#", "")) + _GUICtrlSetState($hCheck[1][0], $iWarn) EndSwitch - Case Else - _GUICtrlSetState($hCheck[2][0], $iPass) - GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Listed as Compatible")) EndSwitch EndIf #EndRegion - #Region ; _CPUCoresCheck() - If $aResults[3][0] Then - _GUICtrlSetState($hCheck[3][0], $iPass) + #Region ; _CPUNameCheck() + If $aSkips[2] Then + _GUICtrlSetState($hCheck[2][0], $iUnsure) + GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Check Skipped")) Else - _GUICtrlSetState($hCheck[3][0], $iFail) + If ($bFUC = True ? $aExtended[2][0] : $aResults[2][0]) Then + _GUICtrlSetState($hCheck[2][0], $iPass) + GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Listed as Compatible")) + Else + Switch ($bFUC = True ? $aExtended[2][0] : $aResults[2][0]) + Case False + Switch $aResults[2][1] + Case 1 + _GUICtrlSetState($hCheck[2][0], $iWarn) + GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Unable to Check List")) + Case 2 + _GUICtrlSetState($hCheck[2][0], $iWarn) + GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Error Accessing List")) + Case 3 + _GUICtrlSetState($hCheck[2][0], $iFail) + GUICtrlSetData($hCheck[2][2], StringReplace(_Translate($aMUI[1], "Not Supported"), "#", "")) + Case Else + _GUICtrlSetState($hCheck[2][0], $iFail) + GUICtrlSetData($hCheck[2][2], StringReplace(_Translate($aMUI[1], "Not Supported"), "#", "")) + EndSwitch + Case Else + _GUICtrlSetState($hCheck[2][0], $iPass) + GUICtrlSetData($hCheck[2][2], _Translate($aMUI[1], "Listed as Compatible")) + EndSwitch + EndIf EndIf + #EndRegion + + #Region ; _CPUCoresCheck() + If $aSkips[3] Then + _GUICtrlSetState($hCheck[3][0], $iUnsure) + GUICtrlSetData($hCheck[3][2], _Translate($aMUI[1], "Check Skipped")) + Else + If ($bFUC = True ? $aExtended[3][0] : $aResults[3][0]) Then + _GUICtrlSetState($hCheck[3][0], $iPass) + Else + _GUICtrlSetState($hCheck[3][0], $iFail) + EndIf - Local $sCores = StringReplace(_Translate($aMUI[1], "Cores"), '#', _GetCPUInfo(0)) - If @extended = 0 Then $sCores = _GetCPUInfo(0) & " " & $sCores - Local $sThreads = StringReplace(_Translate($aMUI[1], "Threads"), '#', _GetCPUInfo(1)) - If @extended = 0 Then $sThreads = _GetCPUInfo(1) & " " & $sThreads - GUICtrlSetData($hCheck[3][2], $sCores & @CRLF & $sThreads) + Local $sCores = StringReplace(_Translate($aMUI[1], "Cores"), "#", _GetCPUInfo(0)) + If @extended = 0 Then $sCores = _GetCPUInfo(0) & " " & $sCores + Local $sThreads = StringReplace(_Translate($aMUI[1], "Threads"), "#", _GetCPUInfo(1)) + If @extended = 0 Then $sThreads = _GetCPUInfo(1) & " " & $sThreads + GUICtrlSetData($hCheck[3][2], $sCores & @CRLF & $sThreads) + EndIf #EndRegion #Region ; _CPUSpeedCheck() - If $aResults[4][0] Then - _GUICtrlSetState($hCheck[4][0], $iPass) - Switch $aResults[4][2] - Case 0 - GUICtrlSetData($hCheck[4][2], _GetCPUInfo(3) & " MHz") - Case 1 - GUICtrlSetData($hCheck[4][2], RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "~MHz") & " MHz") - EndSwitch + If $aSkips[4] Then + _GUICtrlSetState($hCheck[4][0], $iUnsure) + GUICtrlSetData($hCheck[4][2], _Translate($aMUI[1], "Check Skipped")) Else - _GUICtrlSetState($hCheck[4][0], $iFail) - GUICtrlSetData($hCheck[4][2], _GetCPUInfo(3) & " MHz") + If ($bFUC = True ? $aExtended[4][0] : $aResults[4][0]) Then + _GUICtrlSetState($hCheck[4][0], $iPass) + Switch $aResults[4][2] + Case 0 + GUICtrlSetData($hCheck[4][2], _GetCPUInfo(3) & " MHz") + Case 1 + GUICtrlSetData($hCheck[4][2], RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "~MHz") & " MHz") + EndSwitch + Else + _GUICtrlSetState($hCheck[4][0], $iFail) + GUICtrlSetData($hCheck[4][2], _GetCPUInfo(3) & " MHz") + EndIf EndIf #EndRegion + #Region ; _DirectXStartCheck() Skip + If $aSkips[5] Then + _GUICtrlSetState($hCheck[5][0], $iUnsure) + GUICtrlSetData($hCheck[5][2], _Translate($aMUI[1], "Check Skipped")) + $bComplete = True + EndIf + #Region ; _GPTCheck() - If $aResults[6][0] Then - If $aResults[6][1] Then - _GUICtrlSetState($hCheck[6][0], $iPass) - GUICtrlSetData($hCheck[6][2], _Translate($aMUI[1], "GPT Detected")) + If $aSkips[6] Then + _GUICtrlSetState($hCheck[6][0], $iUnsure) + GUICtrlSetData($hCheck[6][2], _Translate($aMUI[1], "Check Skipped")) + Else + If $aResults[6][0] Then + If $aResults[6][1] Then + _GUICtrlSetState($hCheck[6][0], $iPass) + GUICtrlSetData($hCheck[6][2], _Translate($aMUI[1], "GPT Detected")) + Else + _GUICtrlSetState($hCheck[6][0], $iPass) + GUICtrlSetData($hCheck[6][2], _Translate($aMUI[1], "GPT Detected")) + EndIf Else - _GUICtrlSetState($hCheck[6][0], $iPass) - GUICtrlSetData($hCheck[6][2], _Translate($aMUI[1], "GPT Detected")) + GUICtrlSetData($hCheck[6][2], _Translate($aMUI[1], "GPT Not Detected")) + _GUICtrlSetState($hCheck[6][0], $iFail) EndIf - Else - GUICtrlSetData($hCheck[6][2], _Translate($aMUI[1], "GPT Not Detected")) - _GUICtrlSetState($hCheck[6][0], $iFail) EndIf #EndRegion #Region ; _MemCheck() - If $aResults[7][0] Then - _GUICtrlSetState($hCheck[7][0], $iPass) - GUICtrlSetData($hCheck[7][2], $aResults[7][1] & " GB") + If $aSkips[7] Then + _GUICtrlSetState($hCheck[7][0], $iUnsure) + GUICtrlSetData($hCheck[7][2], _Translate($aMUI[1], "Check Skipped")) Else - GUICtrlSetData($hCheck[7][2], $aResults[7][1] & " GB") - _GUICtrlSetState($hCheck[7][0], $iFail) + If ($bFUC = True ? $aExtended[7][0] : $aResults[7][0]) Then + _GUICtrlSetState($hCheck[7][0], $iPass) + GUICtrlSetData($hCheck[7][2], $aResults[7][1] & " GB") + Else + GUICtrlSetData($hCheck[7][2], $aResults[7][1] & " GB") + _GUICtrlSetState($hCheck[7][0], $iFail) + EndIf EndIf #EndRegion #Region ; _SecureBootCheck() - Switch $aResults[8][0] - Case True - Switch $aResults[8][2] - Case 1 - _GUICtrlSetState($hCheck[8][0], $iPass) - GUICtrlSetData($hCheck[8][2], _Translate($aMUI[1], "Enabled")) - Case 0 - _GUICtrlSetState($hCheck[8][0], $iPass) - GUICtrlSetData($hCheck[8][2], _Translate($aMUI[1], "Supported")) - EndSwitch - Case False - _GUICtrlSetState($hCheck[8][0], $iFail) - GUICtrlSetData($hCheck[8][2], _Translate($aMUI[1], "Disabled / Not Detected")) - EndSwitch + If $aSkips[8] Then + _GUICtrlSetState($hCheck[8][0], $iUnsure) + GUICtrlSetData($hCheck[8][2], _Translate($aMUI[1], "Check Skipped")) + Else + Switch ($bFUC = True ? $aExtended[8][0] : $aResults[8][0]) + Case True + Switch $aResults[8][2] + Case 1 + _GUICtrlSetState($hCheck[8][0], $iPass) + GUICtrlSetData($hCheck[8][2], _Translate($aMUI[1], "Enabled")) + Case 0 + _GUICtrlSetState($hCheck[8][0], $iPass) + GUICtrlSetData($hCheck[8][2], _Translate($aMUI[1], "Supported")) + EndSwitch + Case False + _GUICtrlSetState($hCheck[8][0], $iFail) + GUICtrlSetData($hCheck[8][2], _Translate($aMUI[1], "Disabled / Not Detected")) + EndSwitch + EndIf #EndRegion #Region ; _SpaceCheck() - If $aResults[9][0] Then - _GUICtrlSetState($hCheck[9][0], $iPass) + If $aSkips[9] Then + _GUICtrlSetState($hCheck[9][0], $iUnsure) + GUICtrlSetData($hCheck[9][2], _Translate($aMUI[1], "Check Skipped")) Else - _GUICtrlSetState($hCheck[9][0], $iFail) + If ($bFUC = True ? $aExtended[9][0] : $aResults[9][0]) Then + _GUICtrlSetState($hCheck[9][0], $iPass) + Else + _GUICtrlSetState($hCheck[9][0], $iFail) + EndIf + GUICtrlSetData($hCheck[9][2], $WINDOWS_DRIVE & " " & $aResults[9][1] & " GB" & @CRLF & StringReplace(_Translate($aMUI[1], "Drive(s) Meet Requirements"), "#", $aResults[9][2])) EndIf - GUICtrlSetData($hCheck[9][2], $aResults[9][1] & " GB " & $WINDOWS_DRIVE & @CRLF & $aResults[9][2] & " " & _Translate($aMUI[1], "Drive(s) Meet Requirements")) #EndRegion #Region : TPM Check - If $aResults[10][0] Then - _GUICtrlSetState($hCheck[10][0], $iPass) - GUICtrlSetData($hCheck[10][2], "TPM " & $aResults[10][1] & " " & _Translate($aMUI[1], "Detected")) + If $aSkips[10] Then + _GUICtrlSetState($hCheck[10][0], $iUnsure) + GUICtrlSetData($hCheck[10][2], _Translate($aMUI[1], "Check Skipped")) Else - _GUICtrlSetState($hCheck[10][0], $iFail) - Switch $aResults[10][1] - Case 0 - GUICtrlSetData($hCheck[10][2], _Translate($aMUI[1], "TPM Missing / Disabled")) - Case 1 - GUICtrlSetData($hCheck[10][2], "TPM " & Number(StringSplit(_GetTPMInfo(2), ", ", $STR_NOCOUNT)[0]) & " " & _Translate($aMUI[1], "Not Supported")) - Case 2 - GUICtrlSetData($hCheck[10][2], "TPM " & Number(StringSplit(_GetTPMInfo(2), ", ", $STR_NOCOUNT)[0]) & " " & _Translate($aMUI[1], "Not Supported")) - Case 3 - _GUICtrlSetState($hCheck[10][0], $iUnsure) - GUICtrlSetData($hCheck[10][2], _Translate($aMUI[1], "TPM Status Error")) - EndSwitch + If ($bFUC = True ? $aExtended[10][0] : $aResults[10][0]) Then + _GUICtrlSetState($hCheck[10][0], $iPass) + GUICtrlSetData($hCheck[10][2], "TPM " & $aResults[10][1] & " " & _Translate($aMUI[1], "Detected")) + Else + _GUICtrlSetState($hCheck[10][0], $iFail) + Switch $aResults[10][1] + Case 0 + GUICtrlSetData($hCheck[10][2], _Translate($aMUI[1], "Disabled / Not Detected")) + Case 1 + GUICtrlSetData($hCheck[10][2], "TPM " & Number(StringSplit(_GetTPMInfo(2), ", ", $STR_NOCOUNT)[0]) & " " & StringReplace(_Translate($aMUI[1], "Not Supported"), "#", "")) + Case 2 + GUICtrlSetData($hCheck[10][2], "TPM " & Number(StringSplit(_GetTPMInfo(2), ", ", $STR_NOCOUNT)[0]) & " " & StringReplace(_Translate($aMUI[1], "Not Supported"), "#", "")) + Case 3 + _GUICtrlSetState($hCheck[10][0], $iUnsure) + GUICtrlSetData($hCheck[10][2], _Translate($aMUI[1], "TPM Status Error")) + EndSwitch + EndIf EndIf #EndRegion @@ -984,10 +1127,10 @@ Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) Switch $aResults[5][2] Case 1 _GUICtrlSetState($hCheck[5][0], $iPass) - GUICtrlSetData($hCheck[5][2], "DirectX 12 && WDDM 2") ; <== No translation, "DirectX 12 and WDDM 2" in LANG-file + GUICtrlSetData($hCheck[5][2], _Translate($aMUI[1], "DirectX 12 and WDDM 2")) Case 2 _GUICtrlSetState($hCheck[5][0], $iPass) - GUICtrlSetData($hCheck[5][2], "DirectX 12 && WDDM 3") ; <== No translation, "DirectX 12 and WDDM 3" in LANG-file + GUICtrlSetData($hCheck[5][2], _Translate($aMUI[1], "DirectX 12 and WDDM 3")) EndSwitch Case Else Switch $aResults[5][1] @@ -1016,7 +1159,7 @@ Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) If $iLoop = 2 And $aExtended[$iLoop][0] = True Then ContinueLoop ; Pass if Windows Update Reports CPU Okay If $aResults[$iLoop][0] = False Or $aResults[$iLoop][0] < 1 Then MsgBox($MB_OK+$MB_ICONERROR+$MB_TOPMOST+$MB_SETFOREGROUND, _ - _Translate($aMUI[1], "Not Supported"), _ + StringReplace(_Translate($aMUI[1], "Not Supported"), "#", ""), _ _Translate($aMUI[1], "Your Computer is NOT ready for Windows 11, you can join the Discord using the Discord Icon if you need assistance.")) ContinueLoop 2 EndIf @@ -1036,13 +1179,13 @@ Func Main(ByRef $aResults, ByRef $aExtended, ByRef $aOutput) If StringLeft(GUICtrlRead($hLanguage), 4) <> $aMUI[1] Then $aMUI[1] = StringLeft(GUICtrlRead($hLanguage), 4) GUIDelete($hGUI) - Main($aResults, $aExtended, $aOutput) + Main($aResults, $aExtended, $aSkips, $aOutput, $bFUC) EndIf Case $hMsg = $hTheme $aColors = _SetTheme(StringSplit(GUICtrlRead($hTheme), " - ")[1]) GUIDelete($hGUI) - Main($aResults, $aExtended, $aOutput) + Main($aResults, $aExtended, $aSkips, $aOutput, $bFUC) Case $hMsg = $hDumpLang FileDelete(@LocalAppDataDir & "\WhyNotWin11\langs\") @@ -1200,9 +1343,9 @@ EndFunc ;==>FinalizeResults ; Link ..........: ; Example .......: No ; =============================================================================================================================== -Func OutputResults(ByRef $aResults, $aOutput) +Func OutputResults(ByRef $aResults, ByRef $aSkips, $aOutput) - Local $sFile, $hFile + Local $sFile, $hFile, $sOut = "" Local $aLabel[11] = ["Architecture", "Boot Method", "CPU Compatibility", "CPU Core Count", "CPU Frequency", "DirectX + WDDM2", "Disk Partition Type", "RAM Installed", "Secure Boot", "Storage Available", "TPM Version"] @@ -1214,11 +1357,15 @@ Func OutputResults(ByRef $aResults, $aOutput) $sFile = @ScriptDir & "\" & $aOutput[2] EndIf $hFile = FileOpen($sFile, $FO_CREATEPATH + $FO_OVERWRITE) - FileWrite($hFile, "Results for " & @ComputerName & @CRLF) + $sOut = "Results for " & @ComputerName & @CRLF For $iLoop = 0 To 10 Step 1 - FileWrite($hFile, $aLabel[$iLoop] & @TAB & $aResults[$iLoop][0] & @TAB & $aResults[$iLoop][1] & @TAB & $aResults[$iLoop][2] & @CRLF) + If $aSkips[$iLoop] Then + $sOut &= $aLabel[$iLoop] & @TAB & True & @TAB & "Skipped" & @TAB & "Skipped" & @CRLF + Else + $sOut &= $aLabel[$iLoop] & @TAB & $aResults[$iLoop][0] & @TAB & $aResults[$iLoop][1] & @TAB & $aResults[$iLoop][2] & @CRLF + EndIf Next - FileClose($hFile) + Case "csv" If StringInStr($aOutput[2], ":") Or StringInStr($aOutput[2], "\\") Then $sFile = $aOutput[2] @@ -1227,23 +1374,29 @@ Func OutputResults(ByRef $aResults, $aOutput) EndIf If Not FileExists($sFile) Then $hFile = FileOpen($sFile, $FO_CREATEPATH + $FO_OVERWRITE) - FileWrite($hFile, "Hostname") + $sOut = FileWrite($hFile, "Hostname") For $iLoop = 0 To 10 Step 1 - FileWrite($hFile, "," & $aLabel[$iLoop]) + $sOut &= FileWrite($hFile, "," & $aLabel[$iLoop]) Next - FileWrite($hFile, @CRLF) + FileWrite($hFile, $sOut & @CRLF) Else $hFile = FileOpen($sFile, $FO_APPEND) EndIf - FileWrite($hFile, @ComputerName) + $sOut = @ComputerName For $iLoop = 0 To 10 Step 1 - FileWrite($hFile, "," & $aResults[$iLoop][0]) + If $aSkips[$iLoop] Then + $sOut &= FileWrite($hFile, "," & True) + Else + $sOut &= FileWrite($hFile, "," & $aResults[$iLoop][0]) + EndIf Next - FileWrite($hFile, @CRLF) - FileClose($hFile) + Case Else ;;; + EndSwitch + FileWrite($hFile, $sOut & @CRLF) + FileClose($hFile) EndFunc ;==>OutputResults diff --git a/includes/SupportedProcessorsAMD.txt b/includes/SupportedProcessorsAMD.txt index b44990dd..b58765b7 100644 --- a/includes/SupportedProcessorsAMD.txt +++ b/includes/SupportedProcessorsAMD.txt @@ -1,10 +1,14 @@ -2.5.0.4 -AMD 3015e -AMD 3020e +2.6.1.0 +3015e +3020e Athlon 3000G Athlon 300GE Athlon 300U Athlon 320GE +Athlon 7120e +Athlon 7120U +Athlon 7220e +Athlon 7220U Athlon Gold 3150C Athlon Gold 3150G Athlon Gold 3150GE @@ -13,13 +17,10 @@ Athlon Silver 3050C Athlon Silver 3050e Athlon Silver 3050GE Athlon Silver 3050U -Athlon 7120e -Athlon 7120U -Athlon 7220e -Athlon 7220U Athlon Gold PRO 3125GE Athlon Gold PRO 3150G Athlon Gold PRO 3150GE +Athlon Gold PRO 4150GE Athlon PRO 300GE Athlon PRO 300U Athlon PRO 3045B @@ -67,7 +68,14 @@ EPYC 7F32 EPYC 7F52 EPYC 7F72 EPYC 7H12 +Ryzen Embedded R2000 Series R2312 +Ryzen Embedded R2000 Series R2314 +Ryzen Embedded R2000 Series R2514 +Ryzen Embedded R2000 Series R2544 +Ryzen Z1 +Ryzen Z1 Extreme Ryzen 3 3100 +Ryzen 3 4100 Ryzen 3 2300X Ryzen 3 3200G Ryzen 3 3200GE @@ -79,11 +87,19 @@ Ryzen 3 3350U Ryzen 3 4300G Ryzen 3 4300GE Ryzen 3 4300U +Ryzen 3 5125C +Ryzen 3 5300G Ryzen 3 5300GE Ryzen 3 5300U Ryzen 3 5400U +Ryzen 3 5425C +Ryzen 3 5425U Ryzen 3 7320e Ryzen 3 7320U +Ryzen 3 7330U +Ryzen 3 7335U +Ryzen 3 7440U +Ryzen 3 5380U Ryzen 3 PRO 3200G Ryzen 3 PRO 3200GE Ryzen 3 PRO 3300U @@ -93,8 +109,16 @@ Ryzen 3 PRO 4450U Ryzen 3 PRO 5350G Ryzen 3 PRO 5350GE Ryzen 3 PRO 5450U +Ryzen 3 PRO 5475U +Ryzen 3 PRO 7330U +Ryzen 3 PRO 4355G +Ryzen 3 PRO 4355GE Ryzen 5 2600 Ryzen 5 3600 +Ryzen 5 4500 +Ryzen 5 5500 +Ryzen 5 5600 +Ryzen 5 7600 Ryzen 5 2500X Ryzen 5 2600E Ryzen 5 2600X @@ -106,6 +130,7 @@ Ryzen 5 3450U Ryzen 5 3500 Ryzen 5 3500C Ryzen 5 3500U +Ryzen 5 3500X Ryzen 5 3550H Ryzen 5 3580U Ryzen 5 3600X @@ -118,19 +143,34 @@ Ryzen 5 4600HS Ryzen 5 4600U Ryzen 5 5300G Ryzen 5 5300GE +Ryzen 5 5425U Ryzen 5 5500U +Ryzen 5 5560U Ryzen 5 5600G Ryzen 5 5600GE Ryzen 5 5600H Ryzen 5 5600HS Ryzen 5 5600U Ryzen 5 5600X +Ryzen 5 5625C +Ryzen 5 5625U Ryzen 5 6600H +Ryzen 5 6600HS Ryzen 5 6600U Ryzen 5 7520U +Ryzen 5 7530U +Ryzen 5 7535HS +Ryzen 5 7535U +Ryzen 5 7540U Ryzen 5 7600X +Ryzen 5 7640HS +Ryzen 5 7640S +Ryzen 5 7640U +Ryzen 5 7645HX +Ryzen 5 7640H Ryzen 5 PRO 2600 Ryzen 5 PRO 3600 +Ryzen 5 PRO 5645 Ryzen 5 PRO 3350G Ryzen 5 PRO 3350GE Ryzen 5 PRO 3400G @@ -139,15 +179,27 @@ Ryzen 5 PRO 3500U Ryzen 5 PRO 4650G Ryzen 5 PRO 4650GE Ryzen 5 PRO 4650U +Ryzen 5 PRO 5475U Ryzen 5 PRO 5650G Ryzen 5 PRO 5650GE Ryzen 5 PRO 5650HS Ryzen 5 PRO 5650HX Ryzen 5 PRO 5650U +Ryzen 5 PRO 5675U Ryzen 5 PRO 5750G Ryzen 5 PRO 5750GE +Ryzen 5 PRO 6650H +Ryzen 5 PRO 6650HS +Ryzen 5 PRO 6650U +Ryzen 5 PRO 7530U +Ryzen 5 PRO 7540U +Ryzen 5 PRO 7640U +Ryzen 5 PRO 4655G +Ryzen 5 PRO 4655GE Ryzen 7 2700 Ryzen 7 5800 +Ryzen 7 5800 +Ryzen 7 7700 Ryzen 7 2700E Ryzen 7 2700X Ryzen 7 3700C @@ -166,16 +218,32 @@ Ryzen 7 4800U Ryzen 7 5700G Ryzen 7 5700GE Ryzen 7 5700U +Ryzen 7 5700X Ryzen 7 5800H Ryzen 7 5800HS Ryzen 7 5800U Ryzen 7 5800X +Ryzen 7 5800X3D +Ryzen 7 5825C +Ryzen 7 5825U Ryzen 7 6800H +Ryzen 7 6800HS Ryzen 7 6800U Ryzen 7 6810U Ryzen 7 7700X +Ryzen 7 7730U +Ryzen 7 7735HS +Ryzen 7 7735U +Ryzen 7 7736U +Ryzen 7 7745HX +Ryzen 7 7800X3D +Ryzen 7 7840H +Ryzen 7 7840HS +Ryzen 7 7840S +Ryzen 7 7840U Ryzen 7 PRO 2700 Ryzen 7 PRO 3700 +Ryzen 7 PRO 5845 Ryzen 7 PRO 2700X Ryzen 7 PRO 3700U Ryzen 7 PRO 4750G @@ -184,7 +252,15 @@ Ryzen 7 PRO 4750U Ryzen 7 PRO 5850HS Ryzen 7 PRO 5850HX Ryzen 7 PRO 5850U +Ryzen 7 PRO 5875U +Ryzen 7 PRO 6850H +Ryzen 7 PRO 6850HS +Ryzen 7 PRO 6850U +Ryzen 7 PRO 6860Z +Ryzen 7 PRO 7730U +Ryzen 7 PRO 7840U Ryzen 9 5900 +Ryzen 9 7900 Ryzen 9 3900 Ryzen 9 3900X Ryzen 9 3900XT @@ -197,18 +273,33 @@ Ryzen 9 5900X Ryzen 9 5950X Ryzen 9 5980HS Ryzen 9 5980HX +Ryzen 9 6900HS Ryzen 9 6900HX +Ryzen 9 6980HS Ryzen 9 6980HX +Ryzen 9 7845HX Ryzen 9 7900X +Ryzen 9 7900X3D +Ryzen 9 7940H +Ryzen 9 7940HS +Ryzen 9 7945HX Ryzen 9 7950X +Ryzen 9 7950X3D Ryzen 9 PRO 3900 +Ryzen 9 PRO 5945 +Ryzen 9 PRO 6950H +Ryzen 9 PRO 6950HS Ryzen Embedded V2516 Ryzen Embedded V2546 Ryzen Embedded V2718 Ryzen Embedded V2748 +Ryzen Threadripper PRO 3945WX +Ryzen Threadripper PRO 3955WX +Ryzen Threadripper PRO 3975WX +Ryzen Threadripper PRO 3995WX Ryzen Threadripper PRO 5945WX Ryzen Threadripper PRO 5955WX Ryzen Threadripper PRO 5965WX Ryzen Threadripper PRO 5975WX Ryzen Threadripper PRO 5995WX -EOF +EOF \ No newline at end of file diff --git a/includes/_Checks.au3 b/includes/_Checks.au3 index 3caa6c4a..8f0cfc99 100644 --- a/includes/_Checks.au3 +++ b/includes/_Checks.au3 @@ -77,7 +77,17 @@ Func _CPUNameCheck($sCPU, $sFamily, $sVersion, $sWinFU = False) EndIf EndFunc ;==>_CPUNameCheck -Func _CPUCoresCheck($iCores, $iThreads) +Func _CPUCoresCheck($iCores, $iThreads, $sWinFU = False) + + If $sWinFU Then + Local $sReg = RegRead("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TargetVersionUpgradeExperienceIndicators\" & $sWinFU, "RedReason") + If @error Then + Return SetError(1, 0, False) + Else + Return Not StringInStr($sReg, "Cpu") + EndIf + EndIf + If $iCores >= 2 Or $iThreads >= 2 Then Return True Else @@ -85,7 +95,17 @@ Func _CPUCoresCheck($iCores, $iThreads) EndIf EndFunc ;==>_CPUCoresCheck -Func _CPUSpeedCheck() +Func _CPUSpeedCheck($sWinFU = False) + + If $sWinFU Then + Local $sReg = RegRead("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TargetVersionUpgradeExperienceIndicators\" & $sWinFU, "RedReason") + If @error Then + Return SetError(1, 0, False) + Else + Return Not StringInStr($sReg, "Cpu") + EndIf + EndIf + Select Case _GetCPUInfo(3) >= 1000 Return SetError(0, 0, True) @@ -245,7 +265,7 @@ Func _SecureBootCheck($sWinFU = False) If @error Then Return SetError(1, 0, False) Else - Return Not StringInStr($sReg, "CpuFms") + Return Not StringInStr($sReg, "UefiSecureBoot") EndIf EndIf @@ -265,11 +285,11 @@ EndFunc ;==>_SecureBootCheck Func _SpaceCheck($sDrive = Null, $sWinFU = False) If $sWinFU Then - Local $sReg = RegRead("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TargetVersionUpgradeExperienceIndicators\" & $sWinFU, "SystemDriveTooFull") + Local $sReg = RegRead("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TargetVersionUpgradeExperienceIndicators\" & $sWinFU, "RedReason") If @error Then Return SetError(1, 0, False) Else - Return Not Int($sReg) + Return Not StringInStr($sReg, "SystemDriveSize") EndIf EndIf diff --git a/includes/_WMIC.au3 b/includes/_WMIC.au3 index ec28b44f..f9f9ecd2 100644 --- a/includes/_WMIC.au3 +++ b/includes/_WMIC.au3 @@ -51,7 +51,7 @@ Func _GetCPUInfo($iFlag = 0) $vName = $Obj_Item.Name $sSpeed = $Obj_Item.MaxClockSpeed $sArch = $Obj_Item.AddressWidth - $sVersion = $Obj_Item.Version + $sVersion = $Obj_Item.Caption $sFamily = $Obj_Item.Caption Next @@ -203,6 +203,8 @@ Func _GetGPUInfo($iFlag = 0) Case "Citrix Indirect Display Adapter" ContinueCase Case "DisplayLink USB Device" + ContinueCase + Case "Microsoft Remote Display Adapter" ContinueLoop Case Else $sName &= $Obj_Item.Name & ", "