10
A
回答
7
每當用戶經過控制面板來計算Windows體驗評級,該系統將在%Windows%\Performance\WinSAT\DataStore\
你需要找到最近的文件(它們被命名爲最顯著日第一個新的文件,所以找到最新的文件是微不足道的)。
這些文件是xml文件,很容易用XmlReader或其他XML解析器解析。
您感興趣的部分是WinSAT\WinSPR
幷包含單個部分中的所有分數。例如。
<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>
...
1
Here是VB.NET的一個片段。轉換爲C#(使用this,我還沒有真正測試過代碼,儘管它看起來很好)。
/// <summary>
/// Gets the base score of a computer running Windows Vista or higher.
/// </summary>
/// <returns>The String Representation of Score, or False.</returns>
/// <remarks></remarks>
public string GetBaseScore()
{
// Check if the computer has a \WinSAT dir.
if (System.IO.Directory.Exists("C:\\Windows\\Performance\\WinSAT\\DataStore"))
{
// Our method to get the most recently updated score.
// Because the program makes a new XML file on every update of the score,
// we need to calculate the most recent, just incase the owner has upgraded.
System.IO.DirectoryInfo Dir = new System.IO.DirectoryInfo("C:\\Windows\\Performance\\WinSAT\\DataStore");
System.IO.FileInfo[] fileDir = null;
System.IO.FileInfo fileMostRecent = default(IO.FileInfo);
System.DateTime LastAccessTime = default(System.DateTime);
string LastAccessPath = string.Empty;
fileDir = Dir.GetFiles;
// Loop through the files in the \WinSAT dir to find the newest one.
foreach (var fileMostRecent in fileDir)
{
if (fileMostRecent.LastAccessTime >= LastAccessTime)
{
LastAccessTime = fileMostRecent.LastAccessTime;
LastAccessPath = fileMostRecent.FullName;
}
}
// Create an XmlTextReader instance.
System.Xml.XmlTextReader xmlReadScore = new System.Xml.XmlTextReader(LastAccessPath);
// Disable whitespace handling so we don't read over them
xmlReadScore.WhitespaceHandling = System.Xml.WhitespaceHandling.None;
// We need to get to the 25th tag, "WinSPR".
for (int i = 0; i <= 26; i++)
{
xmlReadScore.Read();
}
// Create a string variable, so we can clean up without any mishaps.
string SystemScore = xmlReadScore.ReadElementString("SystemScore");
// Clean up.
xmlReadScore.Close();
return SystemScore;
}
// Unsuccessful.
return false;
}
我想它只會返回整體評分,但希望它至少能讓你開始。它可能只是一個改變文件名/參數來獲得個人評分的問題。
4
同樣的,LINQ:
var dirName = Environment.ExpandEnvironmentVariables(@"%WinDir%\Performance\WinSAT\DataStore\");
var dirInfo = new DirectoryInfo(dirName);
var file = dirInfo.EnumerateFileSystemInfos("*Formal.Assessment*.xml")
.OrderByDescending(fi => fi.LastWriteTime)
.FirstOrDefault();
if (file == null)
throw new FileNotFoundException("WEI assessment xml not found");
var doc = XDocument.Load(file.FullName);
Console.WriteLine("Processor: " + doc.Descendants("CpuScore").First().Value);
Console.WriteLine("Memory (RAM): " + doc.Descendants("MemoryScore").First().Value);
Console.WriteLine("Graphics: " + doc.Descendants("GraphicsScore").First().Value);
Console.WriteLine("Gaming graphics: " + doc.Descendants("GamingScore").First().Value);
Console.WriteLine("Primary hard disk: " + doc.Descendants("DiskScore").First().Value);
Console.WriteLine("Base score: " + doc.Descendants("SystemScore").First().Value);
相關問題
- 1. 使用Zune web API檢索Windows Phone應用程序評論和評分
- 2. 檢索部分頁面體
- 3. 在Google Play上檢索用戶評分和評論
- 4. 體育評分庫
- 5. Wilson評分未評級與負評分實體 - 如何處理?
- 6. FactoryGirl - 檢索從評價者
- 7. 如何檢索評論IP
- 8. 檢索github提交評論
- 9. 檢索Youtube評論OAuth 2.0
- 10. 評分Javascript測驗腳本
- 11. 檢索皁體
- 12. 計算整體評分
- 13. Lucene搜索評分問題
- 14. 如何從Instagram媒體中檢索評論?
- 15. C#Windows窗體顯示Facebook的評論
- 16. Xamarin窗體 - Windows驗證webapi
- 17. 在Windows窗體驗證
- 18. 我如何檢索前3個評分事件MySQL
- 19. 使用電子郵件地址檢索Klout評分
- 20. 如何檢索特定網址的FB評論/分享
- 21. 如何從我的數據庫檢索我的評分
- 22. 檢索谷歌的OAuth應用評分編程
- 23. 高效地檢索facebook帖子上的贊/分享/評論(PHP)
- 24. 按索引檢索組。熊貓羣體是否分類?
- 25. 編程方式獲得Windows體驗索引值
- 26. 檢查驗證文本在文本框+ Windows窗體
- 27. 檢查Windows窗體完成
- 28. 檢索客戶端的PC名稱? (Windows身份驗證)
- 29. 如何使用file_get_contents()檢索Windows NT後面的文件驗證
- 30. 「評分」鏈接爲Windows手機市場
由於微軟刪除控制面板中的Windows體驗索引頁在Windows 8開始,你首先需要生成的數據存儲新的文件。有關詳細信息,請參閱此處:http://www.hanselman.com/blog/CalculateYourWEIWindowsExperienceIndexUnderWindows81.aspx – Surfbutler 2014-11-24 09:54:26