I may send you a WMI script to run, which grabs a value for debugging purposes. Or if your affiliated with WMI in win32_WinSAT there is a value “WinSATAsessmentState”, which holds the current state, could you let me know the value? Let me know either way, again I really appreciate your, and everyone else’s help.
Could it be “WinSATAssessmentState” is meant ? Otherwise it errors here. Code: C:\Windows\system32>wmic path Win32_WinSAT get WinSATAssessmentState WinSATAssessmentState 1
Code: CPUScore real32 Read D3DScore real32 Read DiskScore real32 Read GraphicsScore real32 Read MemoryScore real32 Read TimeTaken string N/A WinSATAssessmentState uint32 Read WinSPRLevel real32 Read At least with 1 s it fails in WMI and my dictionary .
It seems all data is correct here, although something odd is going on as Windows and WMI code creator show two different values. I'll look into it further now. Code: ObjectQuery Obj = new ObjectQuery("SELECT * FROM Win32_WinSAT"); ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope, Obj); foreach (ManagementObject WMIObj in Searcher.Get()) { IntVal = WMIObj["WinSATAssessmentState"].ToString; }
Xiret 2 beta 2 available:- Link removed by QB - Version superceeded. SHA256 - 6493adf0ad8f940a01b879ade639365b8d8c56d468d9d69b40d4008cad298ae3 (always make sure checksums match) Virus total included, please post any bugs here so I can narrow the next list down. Regards, QB.
Maybe a bit late, but my value is: Code: C:\>wmic path Win32_WinSAT get WinSATAssessmentState WinSATAssessmentState 1 Will check out beta2.
Well, checked beta2: 1. Scores are still referred to as "valid", while Windows disagrees strongly. The question is now, how Windows determines that scores are out of date. I won't refresh the scores until we squashed that bug. 2. The "Scoring" explanation still doesn't fit and the end is truncated. 3. On the normal display of results, the "Harddisk" description line is missing, its score is shown. The Gaming score is now correct, yay! 4. Same thing in Hardware mode, the Harddisk line is completely missing, probably pushed into oblivion by the other lines. The icons also do not match with the lines. Sorry for the bad news, don't shoot the messenger, thanks.
Haha, I'd never shoot the messenger 1. This is proving difficult as apparently WinSAT gets the validity from WMI, I've checked the code multiple time and it's being returned correctly, maybe there's something I'm missing. I continue to look into this. but the value of "1" you're getting from "WinSATAssessmentState" means your scores are valid. 2, 3 and 4. 4K scaling is definately being worked out before release, it would be easier if my 4k monitor didn't get damp, but I ordered a new one and it's in the mail. Once it arrives the issues can be fixed properly. Hardware mode does not scale properly on 4K since I based resizing on set values and it will be an easy fix. Thanks for letting me know gaming score is now read correctly,
Added for next BETA: 1. New routine to detect the taskbar location and working screen area for notifications Code: private void SetLocationOfWindow() { int N = 6; //Magic number for bounds - W or H (Edge spacing) int W = Width; //Width of Form int H = Height; //Height of Form Screen LCD = Screen.PrimaryScreen; switch (GetTaskbarLocation()) //Gambol/Toast/WinAPI { case TaskBarLocation.Bottom: Location = new Point(LCD.Bounds.Width - (W - N), (LCD.WorkingArea.Height - (H - N))); break; case TaskBarLocation.Left: Location = new Point(LCD.Bounds.Width - (W - N), (LCD.Bounds.Height - (H - N))); break; case TaskBarLocation.Top: Location = new Point(LCD.Bounds.Width - (W - N), (LCD.Bounds.Height - (H - N))); break; case TaskBarLocation.Right: Location = new Point(LCD.WorkingArea.Width - (W - N), (LCD.Bounds.Height - (H - N))); break; default: //Assume default taskbar set to bottom Location = new Point(LCD.Bounds.Width - (W - N), (LCD.WorkingArea.Height - (H - N))); break; } } 2. Changed how controls are rendered to eliminate "black blocks" on execution of application 3. (DPI) Hardware mode resizing logic fixed for QHD/UHD panels 4. Fixed multiple spaces for certain strings, e.g. HDD/SSD manufacturer Code: S = Regex.Replace(S, "{2, }", " "); 5. Fixed spacing before MB, GB, GHz, etc Still working on: 1. More DPI scaling fixes 2. incorrect score validity shown - Unaware of cause 3. Some machines show incorrect system drive - Aware of cause Regards, QB.
1. As for validity, one hint could be what the OS prints as notification: "New hardware detected" might mean just that. Detecting a change in hardware / software (I did update the nVidia drivers, lately) deems the scores invalid.
On Windows 10 it works very differently so I'm installing Windows 7, through 8.1 to see the differences between them. After installing new drivers in Windows 10 WMI reports WinSATAssessmentState "3", although it's still reported as "1" (valid) even if loaded from WMI, very strange issues. But then this is to be expected, when has Microsoft ever made anything easy? I upgraded my GTX drivers today and it reported valid on my side, whereas in Windows 7, it invalidates scores as it becomes "incoherent with hardware" Regards, QB.
Thanks MJ! Windows 7 is installed after some .wim edits, I've never tried to install 7 on my Laptop so it needed USB3 and NVMe drivers, once I set up Visual Studio I'll get started on debugging.
Okay - Now I know the answer to some questions. 1. Windows 7 gets the WinSAT validity from WinSATAPI.dll - I'm sure Windows 8, 8.1 and 10 do the same, on Windows 7 the validity in the UI @Carlos Detweiller is not based on Instrumentation and I'm sure this is why your validity is incorrect. 2. My readings were muddled and incorrect since Delphi WMI Code Creator was compiled under x86 - Now under a 64 Bit environment it was return incorrect metrics, this caused my confusion, you'd think they would compile it as x64 specific. From these findings I have no choice but to rewrite with the API, which I have started now. Regards, QB.
I've solved the validity issue. Same issue on my windows 7 - After removing nVidia drivers and restarting my PC, WMI still reports a valid score but WinSAT says my scores need to be refreshed. With the WinAPI rewrite WinSAT returns: Code: WINSAT_ASSESSMENT_STATE_INCOHERENT_WITH_HARDWARE With an integer value of "2" which is correct. @Carlos Detweiller - I'm going to send you a private version to test, all seems well my end.