Search code examples
c#rating

Retrieve Windows Experience Rating


I'm looking to retrieve a machine's windows experience rating in C#. If possible I would also like to retrieve the numbers for each component (Graphics, RAM etc.)

Is this possible?


Solution

  • Every time the user goes through control panel to calculate the Windows Experience Rating, the system creates a new file in %Windows%\Performance\WinSAT\DataStore\

    You need to find the most recent file (they are named with the most significant date first, so finding the latest file is trivial).

    These files are xml files and are easy to parse with XmlReader or other xml parser.

    The section you are interested in is WinSAT\WinSPR and contains all the scores in a single section. E.g.

    <WinSAT>
        <WinSPR>
            <SystemScore>3.7</SystemScore> 
            <MemoryScore>5.9</MemoryScore> 
            <CpuScore>5.2</CpuScore> 
            <CPUSubAggScore>5.1</CPUSubAggScore> 
            <VideoEncodeScore>5.3</VideoEncodeScore> 
            <GraphicsScore>3.9</GraphicsScore> 
            <GamingScore>3.7</GamingScore> 
            <DiskScore>5.2</DiskScore> 
        </WinSPR>
    ...